Exception 타입들은 catch block에서 'instanceof'을 이용해 처리되어선 안됩니다

 

Exception을 이용해 catch한 다음 instanceof를 이용해 분기하는 대신, 정의된 타입을 이용해 catch하는 것이 좋습니다.

규칙을 어긴 코드

try {
  /* ... */
}
catch (Exception e) {
  if(e instanceof IOException) { /* ... */ }         // 규칙을 어긴 코드
  if(e instanceof NullPointerException{ /* ... */ }  // 규칙을 어긴 코드
}

규칙을 준수한 해결책

try {
  /* ... */
}
catch (IOException e) { /* ... */ }                // 규칙을 준수한 해결책
catch (NullPointerException e) { /* ... */ }       // 규칙을 준수한 해결책

같이보면 좋은 자료

  • CERT, ERR51-J. - 일반적인 Exception보다 사용자 정의된 Exception을 선호하세요

If you like SONARKUBE, don’t forget to give me a star. :star2:

원문으로 바로가기

Star This Project