try {
// 예외 발생 가능성이 있는 문장
}
catch(e: Exception1) {
// 예외가 잡히게 되면 처리하거나 로깅을 함
}
catch(e: Exception2) {
// 위와 똑같은 플로우
}
finally {
// 위의 코드가 어떻게 됐든 무조건 실행되어야할 finally 블록 코드
}
try{
//.. 중략 ..//
} catch (Exception e){
//컴파일 오류 발생
} catch (IOException e){
}
// Exception 클래스는 모든 예외의 부모이기 때문에 Exception 을 IOException 보다
// 위에서 처리할 수 없다
// WHY ?? IOException 의 catch 블록은 도달할 수 없다
위처럼 Exception 클래스는 모든 Exception의 부모이기 때문에
다른 예외가 나더라도 밑의 catch 블록까지 도달하지 못하고 (Exception e) 부분에서 잡히게 된다.