खोज…


परिचय

हम सीखेंगे कि एरर ऑब्जेक्ट कैसे बनाएं और Node.js में त्रुटियों को कैसे फेंकें और कैसे हैंडल करें

भविष्य में त्रुटि से निपटने में सर्वोत्तम प्रथाओं से संबंधित संपादन।

त्रुटि ऑब्जेक्ट बनाना

नई त्रुटि (संदेश)

नई त्रुटि ऑब्जेक्ट बनाता है, जहां बनाई गई ऑब्जेक्ट की संपत्ति को message करने के लिए मान message सेट किया जा रहा है। आमतौर पर message तर्क को स्ट्रिंग के रूप में त्रुटि निर्माता को पास किया जा रहा है। हालाँकि यदि message तर्क ऑब्जेक्ट स्ट्रिंग नहीं है, तो एरर कंस्ट्रक्टर कॉल .toString() पास की गई ऑब्जेक्ट की विधि और उस वैल्यू को सेट की गई त्रुटि ऑब्जेक्ट की message प्रॉपर्टी पर सेट करता है।

var err = new Error("The error message");
console.log(err.message); //prints: The error message
console.log(err);
//output
//Error: The error message
//    at ... 

प्रत्येक त्रुटि ऑब्जेक्ट में स्टैक ट्रेस है। स्टैक ट्रेस में त्रुटि संदेश की जानकारी है और दिखाता है कि त्रुटि कहां हुई (उपरोक्त आउटपुट त्रुटि स्टैक दिखाता है)। एक बार एरर ऑब्जेक्ट बनने के बाद सिस्टम लाइन पर एरर के स्टैक ट्रेस को कैप्चर करता है। स्टैक ट्रेस प्राप्त करने के लिए किसी भी बनाई गई त्रुटि ऑब्जेक्ट की स्टैक गुण का उपयोग करें। नीचे दो लाइनें समान हैं:

console.log(err);
console.log(err.stack);

थ्रोइंग एरर

थ्रोइंग एरर का मतलब अपवाद है अगर कोई अपवाद नहीं संभाला जाता है तो नोड सर्वर क्रैश हो जाएगा।

निम्न पंक्ति त्रुटि देती है:

throw new Error("Some error occurred"); 

या

var err = new Error("Some error occurred");
throw err;

या

throw "Some error occurred";

अंतिम उदाहरण (स्ट्रिंग्स को फेंकना) अच्छा अभ्यास नहीं है और इसकी अनुशंसा नहीं की जाती है (हमेशा त्रुटियां फेंकें जो त्रुटि ऑब्जेक्ट के उदाहरण हैं)।

ध्यान दें कि यदि आप throw अपने में कोई त्रुटि है, तो प्रणाली है कि लाइन पर दुर्घटना (यदि वहाँ कोई अपवाद नहीं हैंडलर), कोई किसी भी कोड है कि रेखा के बाद निष्पादित किया जाएगा।

var a = 5;
var err = new Error("Some error message");
throw err; //this will print the error stack and node server will stop
a++; //this line will never be executed
console.log(a); //and this one also

लेकिन इस उदाहरण में:

var a = 5;
var err = new Error("Some error message");
console.log(err); //this will print the error stack
a++; 
console.log(a); //this line will be executed and will print 6

कोशिश ... पकड़ ब्लॉक

प्रयास करें ... कैच ब्लॉक अपवादों को संभालने के लिए है, याद रखें अपवाद का अर्थ है फेंकी गई त्रुटि नहीं त्रुटि।

try {
    var a = 1;
    b++; //this will cause an error because be is undefined
    console.log(b); //this line will not be executed
} catch (error) {
    console.log(error); //here we handle the error caused in the try block
}

try ब्लॉक b++ एक त्रुटि का कारण बनता है और उस त्रुटि को ब्लॉक को catch लिए पारित किया जाता है जिसे वहां संभाला जा सकता है या यहां तक कि उसी त्रुटि को पकड़ ब्लॉक में फेंक दिया जा सकता है या थोड़ा सा संशोधन कर सकता है फिर फेंक सकता है। आइए अगले उदाहरण देखें।

try {
    var a = 1;
    b++;
    console.log(b);
} catch (error) {
    error.message = "b variable is undefined, so the undefined can't be incremented"
    throw error;
}

उपरोक्त उदाहरण में हमने error वस्तु की message संपत्ति को संशोधित किया और फिर संशोधित error फेंक दिया।

आप अपने प्रयास ब्लॉक में किसी भी त्रुटि के माध्यम से और इसे पकड़ ब्लॉक में संभाल सकते हैं:

try {
    var a = 1;
    throw new Error("Some error message");
    console.log(a); //this line will not be executed;
} catch (error) {
    console.log(error); //will be the above thrown error 
}


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow