जावास्क्रिप्ट में कई प्रकार की त्रुटियों को पकड़ो [डुप्लिकेट]
यदि मैं इस तरह से कस्टम त्रुटि वर्गों को परिभाषित करता हूं:
class MyCustom Error extends Error{ }
मैं इस तरह से कई त्रुटियों को कैसे पकड़ सकता हूं:
try{
if(something)
throw MyCustomError();
if(something_else)
throw Error('lalala');
}catch(MyCustomError err){
}catch(err){
}
?
ऊपर दिया गया कोड काम नहीं करता है और कुछ सिंटैक्स त्रुटि देता है
जवाब
1 TheOtterlord
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
जावास्क्रिप्ट कमजोर रूप से टाइप किया गया है। if (err instanceof MyCustomError)
कैच क्लॉज के अंदर का उपयोग करें ।