Effective Java 10장 예외 - 2
Effective Java 3/E
해당 블로그는 Effective 3을 읽고 공부한 내용을 정리한 블로그입니다.
P396 표준 예외를 사용하라
- Exception, RuntimeException, Throwable, error는 직접 재사용하지 말자. 해당 클래스들은 추상 클래스라 생각하자
P399 추상화 수준에 맞는 예외를 던지라
- 무작정 예외를 전파하는 것보다 예외 번역이 우수한 방법이지만, 그렇다고 남용해서는 안된다.
P402 메서드가 던지는 모든 예외를 문서화하라
- 검사 예외는 항상 별도로 선언하고, 각 예외가 발생하는 상황을 자바독의 @throws 태그를 사용하여 정확히 문서화하자.
- 비검사 예외는 메서드 선언의 throws 목록에 넣지말자.
P404 예외의 상세 메시지에 실패 관련 정보를 담으라
예외 처리 중요 키워드
중요 키워드
1. try
- 코드를 작성하며 아마 Exception이 발생 할 곳을 block 할 때
- try-block은 반드시 catch-block 또는 finally-block이 따라온다
1 2 3 4 5 6 7 8
| try {
}catch (e: Exception){
}
|
2. catch
1 2 3 4 5 6 7
| try {
}catch (e: Exception){
}
|
3. finally
- try-catch 블록과 연관지어져 있다.
- connection(database, socket, filestream) 을 할때 커넥션을 닫을 때
1 2 3 4 5 6 7 8 9 10 11 12
| try {
}catch (e: Exception){
}finally { }
|
4. throw
정말 말이 안되지만 아래와 같은 코드가 있다 가정해보자
1 2 3 4 5 6 7 8 9 10
| try{
println("사장님 마표대교는 막혔는데요?") throw NullPointerException("마표대교가 막힘")
}catch (e : Exception){
}
|