메서드 선언에 예외를 명시하는 이유는, 해당 메서드를 사용할 때 적절한 조치가 필요하기 때문이다.
다음과 같은 코드는 예외의 존재 이유가 사라져 버린다.
try {
...
} catch (Exception e) {
}
예외를 무시할 수 있을 때도 있을 수 있다.
예를 들어 FileInputStream을 닫을 때 발생하는 예외는
- 입력 전용 스트림이기 때문에 파일 자체의 상태를 변경하지 않았기 때문에 복구할 필요가 없고,
- 스트림을 닫을 때 예외가 발생한다는 것은 이미 읽을 건 다 읽었다는 뜻이기 때문에 예외를 무시할 수 있다.
하지만 같은 예외가 계속 발생한다면 이는 조사해 볼 필요가 있다. 따라서 로그라도 남기는 것이 좋다.
또한 예외를 무시하기로 했다면 이유를 주석으로 남기고 예외 변수의 이름도 ignored로 바꾸도록 하자.
예외를 무시하고 지나가면 프로그램은 오류를 내재한 채로 작동하게 된다.
그 결과는 예측 할 수 없게 되고 전혀 엉뚱한 곳에서 오작동이 발생할 수 있다.