- finally
- try 또는 catch 블럭에서 return을 만나도 finally 블럭은 수행된다.
- System.exit()을 만나면 무조건 프로그램 종료
- 주로 리소스 관리 고려하는 코드 - 예외처리 방법
1. caller에게 처리 위임
- 메소드 선언 시 throws exception_name
- 계속 위임하면 main까지 가고 main 마저 try-catch가 없으면 비정상 종료
2. Exception e = new Exception("에러") 객체 생성 후 throw e; // throw new Exception("에러");
3. catch 절에서 exception을 그대로 던지거나 catch 블록 내에서 새로운 exception을 throw new Exception("새로운 예외") 하기도 함 - 예외 객체 처리
발생한 예외를 catch 블럭의 참조 변수로 접근가능
- printStackTrace() : call stack
- getMessage() : 발생한 예외 클래스의 객체에 저장된 메시지 - 오버라이딩 시 throws하는 Exception은 같거나 자식Exception이어 한다.