Node.js
Node.js त्रुटि प्रबंधन
खोज…
परिचय
हम सीखेंगे कि एरर ऑब्जेक्ट कैसे बनाएं और 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
}