[책리뷰/Effective Java] 예외

OCTOBER 12, 2020

아이템77) 예외를 무시하지 말라

  • API 설계자가 메서드 선언에 예외를 명시하는 까닭은, 그 메서드를 사용할 때 적절한 조취를 취해달라고 말하는 것이다.
  • 예외는 문제 상황에 잘 대처하기 위해서 존재하는데 catch 블록을 비워두면 예외가 존재할 이유가 없어진다.
try { 
  ... 
} catch(SomeException e) { }

예외를 무시해야 할 떄

  • FileInputStream을 닫을 때 (입력 전용 스트림이므로) 파일의 상태를 변경하지 않았으니 복구할 것이 없음 (스트림을 닫는다는 건) 필요한 정보는 이미 다 읽었다는 뜻이니 남은 작업을 중단할 이유도 없음
  • 예외를 무시하기로 했다면 catch 블록 안에 그렇게 결정한 이유를 주석으로 남기고 예외 변수 이름도 ignore로 바꿔놓도록 하자 .

    Future<Integer> f = exec.submit(planarMap::chromaticNumber); 
    int numColors = 4; 
    try { 
    numColors = f.get(1L, TimeUnit.SECONDS); 
    } catch(TimeoutException | ExecutionException ignored) { }

작업 기록 블로그