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

'Langauge > JAVA' 카테고리의 다른 글

쓰레드(Thread)  (0) 2020.05.31
지네릭(Generics)  (0) 2020.05.31
내부 클래스  (0) 2020.05.21
오버로딩 vs 오버라이딩  (0) 2020.05.15
클래스멤버와 인스턴스멤버 간의 참조와 호출  (0) 2020.05.14

+ Recent posts