Throwable
은 자바에서 모든 에러와 예외의 슈퍼클래스입니다. Error
는 모든 에러들의 슈퍼클래스이고 어플리케이션에 의해 잡히지 않습니다.
Throwable
또는 Error
를 잡게된다면 어플리케이션이 복구 시도하지 않아야하는 OutOfMemoryError
와 InternalError
도 잡게됩니다.
규칙을 어긴 코드
try { /* ... */ } catch (Throwable t) { /* ... */ }
try { /* ... */ } catch (Error e) { /* ... */ }
규칙을 준수한 코드
try { /* ... */ } catch (RuntimeException e) { /* ... */ }
try { /* ... */ } catch (MyException e) { /* ... */ }
참고
- MITRE, CWE-396 - Declaration of Catch for Generic Exception
- CERT, ERR08-J. - Do not catch NullPointerException or any of its ancestors
If you like SONARKUBE, don’t forget to give me a star.