Skip to content
← Back to rules

eslint/no-unsafe-finally 정확성

This rule is turned on by default.

작동 방식

finally 블록 내에서 제어 흐름 문을 금지합니다.

왜 좋지 않은가?

자바스크립트는 finally 블록의 실행이 완료될 때까지 trycatch 블록의 제어 흐름 문을 일시 중단합니다.

따라서 finally 내부에서 return, throw, break, 또는 continue를 사용하면, trycatch 블록 내부의 제어 흐름 문이 덮어쓰게 됩니다. 개발자에게는 예상치 못한 동작일 수 있습니다.

예시

이 규칙에 위반되는 잘못된 코드 예시:

javascript
// 이 함수는 1을 반환할 것으로 기대하지만;
(() => {
  try {
    return 1; // 1은 반환되지만, finally 블록이 끝날 때까지 일시 중단됨
  } catch (err) {
    return 2;
  } finally {
    return 3; // 1보다 먼저 3이 반환되어, 예상하지 못한 결과
  }
})();

// > 3

사용 방법

이 규칙을 구성 파일이나 명령줄 인터페이스에서 활성화하려면 다음을 사용하세요:

json
{
  "rules": {
    "no-unsafe-finally": "error"
  }
}
bash
oxlint --deny no-unsafe-finally

참고 자료