Langauge/JAVA
예외처리(try-catch-finally)
유로파니
2020. 5. 22. 10:24
Try-Catch 문을 사용할 때 Catch문을 여러개 사용할 경우, 하위에 해당하는 Exception부터 처리해야함.
ex ) ArithmeticException -> RuntimeException -> Exception 순으로
public class ExceptionEx1 {
public static void main(String[] args) {
try {
System.out.println(1/0);
} catch (ArithmeticException e) { //ArithmeticException만 실행
System.out.println("0으로 나누지 마세요");
e.printStackTrace();
} catch (RuntimeException e) { //RuntimeException중 ArithmeticException이 아닌것만 실행
System.out.println("연락요망");
e.printStackTrace();
} catch (Exception e) { //RuntimeException 이외의 나머지 Exception이 실행
e.printStackTrace();
}
}
}
try문을 실행하다가 예외가 발생했을 때 여러개의 catch문이 존재한다면 위에서부터 instanceof의 결과가 true인 catch문을 찾아내려간다. 찾으면 그 catch문 하나만을 실행하고 try-catch문을 빠져나온다.
● return시 순서
public class ExceptionEx3 {
public static void main(String[] args) {
try {
System.out.print(1);
System.out.print(2);
System.out.print(3/0); // exception 발생
System.out.print(4);
} catch (Exception e) {
System.out.print(5);
return; //main method 종료
} finally {
System.out.print(6);
}
System.out.print(7);
}
}
> 1256