मेरा मानना है कि try..catch
जावास्क्रिप्ट में बहुत कम कारण है क्योंकि भाषा में त्रुटि के लिए बहुत अधिक सहनशीलता है। अधिकांश स्थितियों को कोड की जाँच, अच्छी चूक और अतुल्यकालिक घटनाओं का उपयोग करके नियंत्रित किया जा सकता है। कुछ मामलों में, बस एक पैटर्न का उपयोग करने से मुद्दों को रोका जा सकता है:
function Foo() {
//this may or may not be called as a constructor!!
//could accidentally overwrite properties on window
}
function Bar() {
if (!(this instanceof Bar)) {
return new Bar();
}
//this will only work on Bar objects, and wont impact window
}
अन्य भाषाओं में कुछ प्रमुख मुद्दे जिनके कारण अपवाद उत्पन्न होते हैं, जेएस में मौजूद नहीं होते हैं। टाइप कास्टिंग को उस समय के विशाल बहुमत की आवश्यकता नहीं होती है। इसके बजाय, पसंदीदा तरीका आम तौर पर चेक (विशेष इंटरफ़ेस लागू करना) है:
function doFoo(arg) {
if (arg.foo) {
arg.foo();
} else {
Bar.prototype.foo.call(arg);
}
}
भाषा के साथ async
/ के अतिरिक्त await
, try..catch
अधिक प्रचलित हो रहा है। के अतुल्यकालिक रूप होने का वादा try..catch
करता है, यह समझ में आता है कि किसी को उम्मीद करनी चाहिए:
doSomething().then(
doSomethingWithResult,
doSomethingWithError
)
इसके बजाय के रूप में लिखा जाना चाहिए:
try {
const result = await doSomething()
doSomethingWithResult(result)
} catch (e) {
doSomethingWithError(e)
}
While in java or *any other language* it is mandatory to have error handling...
- ज़रुरी नहीं। जावा, हाँ, लेकिन ऐसी बहुत सी भाषाएं हैं जो ट्राइ-कैच (जैसे C #) पर जोर नहीं देती हैं।