You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
API 설계자가 메서드 선언에 예외를 명시하는 이유는 그 메서드를 사용할 때 적절한 조치를 취해달라고 말하는 것이다. 이를 무시하지 말자.
메서드 호출을 try문으로 감싸고 catch 블록에서 아무 일도 하지 않으면 예외를 쉽게 무시할 수 있지만, 그러면 예외가 존재할 이유가 없어진다.
빈 catch 블록을 목격한다면 머릿속에 사이렌🚨 을 울려야 한다!!
색칠하는데 필요한 최소 색깔 개수를 numColors 를 f.get()으로 계산하고 있지만 1초가 넘으면 그냥 기본값이 4개를 사용하고 있다(모든 planar map은 4개 색이 있으면 칠할 수 있으므로. 다른 이야기긴 하지만 이에 대해 더 궁금하면 https://en.wikipedia.org/wiki/Four_color_theorem를 읽어보자).
계산 시간이 1초를 넘겨 발생하는 예외 상황에서 따로 할 일이 없으므로 예외를 ignored 변수로 catch한다.
핵심 정리
검사와 비검사 예외 모두에서 예외가 발생했을 때 무시하면 안된다!
빈 catch 블록으로 지나가면 프로그램은 오류를 내제한 채 동작하게 되고, 문제 원인과 상관없는 곳에서 문제가 생길 수 있다.
예외를 적절히 처리하면 오류를 완전히 피할수도 있고, 바깥으로 전파되게만 놔둬도 디버깅 정보를 남긴 채 프로그램이 신속히 중단되게 할 수 있다.
예외를 무시할 수 있는 상황이라면 catch 블록 안에 그렇게 결정한 이유를 주석으로 남기고 예외 변수 이름도 ignore를 사용하자.
The text was updated successfully, but these errors were encountered:
[ Item77 ] 예외를 무시하지 말라
예외는 문제 상황에 잘 대처하기 위해 존재한다!
API 설계자가 메서드 선언에 예외를 명시하는 이유는 그 메서드를 사용할 때 적절한 조치를 취해달라고 말하는 것이다. 이를 무시하지 말자.
메서드 호출을 try문으로 감싸고 catch 블록에서 아무 일도 하지 않으면 예외를 쉽게 무시할 수 있지만, 그러면 예외가 존재할 이유가 없어진다.
빈 catch 블록을 목격한다면 머릿속에 사이렌🚨 을 울려야 한다!!
예외를 무시해야할 경우
예를 들어 FileInputStream을 닫을 때(close())는 예외를 무시해도 된다.
(FileInputStream: https://docs.oracle.com/javase/7/docs/api/java/io/FileInputStream.html)
📌 이렇게 예외를 무시할 수 있는 상황이라면 catch 블록 안에 그렇게 결정한 이유를 주석으로 남기고 예외 변수 이름도 ignore를 사용하자!
예시)
핵심 정리
The text was updated successfully, but these errors were encountered: