try{
...
} catch (SomeException e){
}
FileInputStream을 닫을 때 발생하는 예외 → 파일의 상태를 변경하지 않았으니(FileInputStream은 읽기 전용 스트림임) 복구할 것이 없고, 필요한 정보는 이미 다 읽었다는 뜻이므로 남은 작업을 중단할 이유가 없음
FileInputStream fis = null;
try {
fis = new FileInputStream("example.txt");
// 파일에서 데이터를 읽는 코드
} catch (IOException e) {
// 예외 처리 코드
} finally {
try {
if (fis != null) {
fis.close(); // 파일 닫기
}
} catch (IOException e) {
// 파일을 닫는 과정에서 예외가 발생할 수 있지만, 데이터를 이미 읽었기 때문에 이를 무시할 수 있음
}
}
예외를 무시하기로 했다면 catch 블록 안에 이유를 주석으로 남기고 예외 변수의 이름도 ignored로 바꿔놓자
Future<Integer> f = exec.submit(planarMap::chromticNumber);
int numColors = 4; //기본값
try {
numColors = f.get(1L, TimeUnit.SECONDS);
} catch (TimeOutException | ExecutionExcetion ignored) {
// 기본값을 사용한다
}
⇒ 예외를 무시하지 않고 바깥으로 전파되게만 놔둬도 최소한 디버깅 정보를 남긴 채 프로그램이 중단되게는 할 수 있음