실행타임의 에러 - 잡기 힘든 심각한 에러
=> 이를 줄이기 위해 try~Catch 구문 사용
자바에서는 실행타임에 에러가 발생할 가능성이 높은 곳 (보통 입출력 관계된 곳)에는
컴파일러 차원에서 에러처리를 사용하도록 강요한다.
즉, 에러발생확률이 높은 곳은 반드시 에러처리 구문을 사용해야 한다.
//요구사항] 숫자를 입력받아 처리를 하시오.
Scanner scan = new Scanner(System.in);
System.out.print("숫자: ");
//0이 들어가면 예외 발생
int num = scan.nextInt();
//예외 조건
if(num !=0) {
//비즈니스코드(업무코드)
System.out.printf("100 / %d = %d\n", num, 100/num);
} else {
//예외처리코드
System.out.println("0을 입력하지 마시오.");
}
//*** try문 > 감시!!! > 에러가 발생하는지 계속 검사!! //에러가 발생하기 전까지만 try 실행
//*** catch문 > 예외처리!!!
try { //에러가 발생해도 프로그램을 중단하지 않고 예외처리를 한 후 프로그램을 진행함
//비즈니스코드(업무코드)
System.out.println(111);
System.out.printf("100 / %d = %d\n", num, 100/num);
System.out.println(222);
} catch (Exception e) {
//e: 예외 객체
//- 발생한 예외에 대한 여러가지 정보를 제공하는 객체
//System.out.println(e.getMessage());
e.printStackTrace(); //에러 메세지를 보여줌
//예외처리코드
System.out.println("0을 입력하지 마시오.");
}
System.out.println("종료");
}
Scanner scan = new Scanner(System.in);
System.out.print("숫자: ");
int num = scan.nextInt();
try {
//비즈니스 코드 영역
System.out.println(100 / num);
} catch (Exception e) {
//예외 처리 영역
System.out.println("예외 처리");
} finally {
//자원 해제 영역
//성공 or 실패 > 무조건 실행하는 영역
System.out.println("finally");
scan.close(); // 자원 해제 > clean-up code.
}
}
//결과
숫자: 0
예외 처리
finally
private static void m5() throws Exception{
int n =0 ;
System.out.println(100/n);
}
public static void main(String[] args) {
try {
m5();
} catch (Exception e) {
System.out.println("에러처리");
}
}//main