예외 처리 블록이 비어 있음

예외 처리 블록이 비어 있음

설명

catch 블록이 비어 있거나 로그만 남기고 실패 처리를 하지 않으면 호출자에게 실패가 전달되지 않거나 잘못된 상태로 처리가 계속될 수 있습니다. 로그는 진단에 도움을 주지만 실패 반환이나 복구 동작을 대신하지 않습니다.

잠재적 영향

  • 보안 검증 실패가 정상 상태처럼 계속 진행될 수 있습니다.
  • 파일, 인증, 암호화 처리 실패가 은폐될 수 있습니다.

해결 방법

  • 예외를 로깅하고 호출자에게 실패를 반환하거나 다시 발생시키세요.
  • 복구 가능한 예외만 구체적으로 처리하고 복구 동작을 코드로 명시하세요.

예시

변경 전

javascript
try {
  verifySignature(input);
} catch (err) {
}

변경 후

javascript
try {
  verifySignature(input);
} catch (err) {
  logger.error({ err }, "signature verification failed");
  throw err;
}

설명:

  • 변경 전: catch 블록이 비어 있거나 로그만 남기고 실패 처리를 하지 않으면 호출자에게 실패가 전달되지 않거나 잘못된 상태로 처리가 계속될 수 있습니다. 로그는 진단에 도움을 주지만 실패 반환이나 복구 동작을 대신하지 않습니다.
  • 변경 후: 오류를 기록한 뒤 다시 던져 정상 처리로 넘어가지 않게 합니다. 로그의 민감한 값은 마스킹하고 접근을 제한하세요.

참조