जावास्क्रिप्ट में कई प्रकार की त्रुटियों को पकड़ो [डुप्लिकेट]

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

जावास्क्रिप्ट कमजोर रूप से टाइप किया गया है। if (err instanceof MyCustomError)कैच क्लॉज के अंदर का उपयोग करें ।