반응형
1.
코드
public static void main(String args[])
{
method 1();
}
statci void method1(){
try{
throw new Exception(); // 일부러 예외처리
}catch (Exception e){
System.out.println("method1 메서드 내에서 예외가 처리되었습니다");
e.printStackTrace();
}
}
}
결과
method1메서드 내에서 예외가 처리 되었습니다.
java.lang.Exception
at javas.javas.method1(javas.java:12)
at javas.javas.main(javas.java:8)
2.
코드
public static void main(String args[])
{
try{
method1();
}
catch(Exception e){
System.out.println("method1메서드에서 예외가 처리되었습니다.");
e.printStackTrace();
}
}
static void method1() throw Exception{
throw new Exception();
}
}
결과
method1메서드에서 예외가 처리되었습니다.
java.lang.Exception
at javas.javas.method1(javas.java:14)
at javas.javas.main(javas.java:6)
비교
1은 예외가 발생한 메서드 내에서 처리되어지면 호출한 메서드에서는 예외가 발생했다는 사실조차 모르게 된다.
그러나 2는 예외가 발생한 메서드에서 예외를 처리하지 않고 호출한 메서드로 넘겨주면, 호출한 메서드에서는 method1()을 호출한 라인에서 예외가 발생한 것으로 간주되어 이에 대한 처리를 하게 된다.
반응형