자바 스크립트에서 여러 유형의 오류 포착 [중복]

Aug 16 2020

다음과 같이 사용자 지정 오류 클래스를 정의하면 :

class MyCustom Error extends Error{ }

다음과 같은 여러 오류를 어떻게 잡을 수 있습니까?

try{

  if(something)
    throw MyCustomError();

  if(something_else)
    throw Error('lalala');


}catch(MyCustomError err){
 

}catch(err){

}

?

위의 코드는 작동하지 않으며 구문 오류가 발생합니다.

답변

1 TheOtterlord Aug 16 2020 at 15:37

MDN의 문서는 사용하는 것이 좋습니다 if/else내부 블록 catch문을. 이는 여러 catch문장 을 가질 수없고 그런 식으로 특정 오류를 포착 할 수 없기 때문입니다.

try {
  myroutine(); // may throw three types of exceptions
} catch (e) {
  if (e instanceof TypeError) {
    // statements to handle TypeError exceptions
  } else if (e instanceof RangeError) {
    // statements to handle RangeError exceptions
  } else if (e instanceof EvalError) {
    // statements to handle EvalError exceptions
  } else {
    // statements to handle any unspecified exceptions
    logMyErrors(e); // pass exception object to error handler
  }
}
1 Hi-IloveSO Aug 16 2020 at 15:38

JavaScript는 약한 유형입니다. if (err instanceof MyCustomError)catch 절 내에서 사용하십시오 .