Skip to content
← Back to rules

eslint/no-throw-literal 조심스러운

An auto-fix is available for this rule.

작동 방식

예외로 리터럴 또는 Error 객체가 아닌 객체를 던지는 것을 금지합니다.

WARNING

이 규칙은 더 이상 사용되지 않으며, 대신 typescript/only-throw-error 를 사용하세요. 타입스크립트 버전의 규칙은 자바스크립트 버전보다 더 신뢰할 수 있으며, 더 적은 오류 발생률을 가지며, 더 많은 경우를 탐지할 수 있습니다.

왜 나쁜가요?

사용자 정의 예외를 위해 오직 Error 객체 자체나 Error 객체를 기반으로 하는 객체만 던지는 것이 좋은 실천 방법으로 간주됩니다. Error 객체의 핵심 장점은 그들이 자신이 생성되고 출처가 되었음을 자동으로 추적한다는 점입니다.

예시

이 규칙에 잘못된 코드 예시:

js
throw "error";

throw 0;

throw undefined;

throw null;

var err = new Error();
throw "an " + err;
// err는 문자열 리터럴로 변환됨

var err = new Error();
throw `${err}`;

이 규칙에 올바른 코드 예시:

js
throw new Error();

throw new Error("error");

var e = new Error("error");
throw e;

try {
  throw new Error("error");
} catch (e) {
  throw e;
}

사용 방법

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

json
{
  "rules": {
    "no-throw-literal": "error"
  }
}
bash
oxlint --deny no-throw-literal

참고 자료