अनुशंसित, 2020

संपादक की पसंद

जावा में त्रुटि और अपवाद के बीच अंतर

जावा की त्रुटि और अपवाद पदानुक्रम के लिए मूल के रूप में "थ्रेडेबल" ​​कार्य करता है। "त्रुटि" एक महत्वपूर्ण स्थिति है जिसे प्रोग्राम के कोड द्वारा नियंत्रित नहीं किया जा सकता है। "अपवाद" असाधारण स्थिति है जिसे प्रोग्राम के कोड द्वारा नियंत्रित किया जा सकता है। त्रुटि और अपवाद के बीच महत्वपूर्ण अंतर यह है कि सिस्टम संसाधनों की कमी के कारण त्रुटि होती है, और आपके कोड के कारण अपवाद होता है। तुलना चार्ट के साथ त्रुटि और अपवाद के बीच अन्य अंतरों का अध्ययन करते हैं।

तुलना चार्ट

तुलना के लिए आधारत्रुटिअपवाद
बुनियादीसिस्टम संसाधनों की कमी के कारण त्रुटि होती है।कोड के कारण अपवाद होता है।
वसूलीएक त्रुटि अपरिवर्तनीय है।एक अपवाद पुनर्प्राप्त करने योग्य है।
कीवर्डप्रोग्राम कोड द्वारा एक त्रुटि को संभालने का कोई साधन नहीं है।अपवादों को तीन कीवर्ड "कोशिश", "पकड़" और "फेंक" का उपयोग करके नियंत्रित किया जाता है।
परिणाम
जैसा कि त्रुटि का पता चला है कार्यक्रम असामान्य रूप से समाप्त हो जाएगा।जैसा कि एक अपवाद का पता चला है, इसे "फेंक" और "पकड़" के आधार पर कीवर्ड द्वारा पकड़ा और पकड़ा जाता है।
प्रकारत्रुटियों को अनियंत्रित प्रकार के रूप में वर्गीकृत किया गया है।अपवादों को जाँच या अनियंत्रित प्रकार के रूप में वर्गीकृत किया गया है।
पैकेजजावा में, त्रुटियों को "java.lang.Error" पैकेज के रूप में परिभाषित किया गया है।जावा में, एक अपवाद "java.lang.Exception" में परिभाषित किया गया है।
उदाहरणआउटऑफमेरी, स्टैकऑवरफ्लो।चेक किए गए अपवाद: NoSuchMethod, ClassNotFound।
अनियंत्रित अपवाद: NullPointer, IndexOutOfBounds।

त्रुटि की परिभाषा

" एरर " बिल्ट-इन क्लास "थ्रोएबल" का एक उपवर्ग है। सिस्टम की संसाधनों की कमी के कारण उत्पन्न होने वाली गंभीर स्थितियां हैं, और इसे प्रोग्राम के कोड द्वारा नियंत्रित नहीं किया जा सकता है। त्रुटियों को किसी भी तरह से पुनर्प्राप्त नहीं किया जा सकता है क्योंकि उन्हें बनाया, फेंका, पकड़ा या उत्तर नहीं दिया जा सकता है। भयावह विफलता के कारण त्रुटियां होती हैं, जिन्हें आमतौर पर आपके कार्यक्रम द्वारा नियंत्रित नहीं किया जा सकता है।

त्रुटियां हमेशा अनियंत्रित प्रकार की होती हैं, क्योंकि संकलक को इसकी घटना के बारे में कोई ज्ञान नहीं होता है। एरियर्स हमेशा रन-टाइम वातावरण में होते हैं। त्रुटि को एक उदाहरण की मदद से समझाया जा सकता है, कार्यक्रम में स्टैक ओवरफ्लो की त्रुटि, मेमोरी त्रुटि से बाहर या सिस्टम क्रैश त्रुटि है, इस तरह की त्रुटि सिस्टम के कारण होती है। ऐसी त्रुटियों के लिए कोड जिम्मेदार नहीं है। त्रुटि की घटना का परिणाम यह है कि कार्यक्रम असामान्य रूप से समाप्त हो जाता है।

अपवाद की परिभाषा

"अपवाद" भी बिल्ट-इन क्लास "थ्रोएबल" का एक उपवर्ग है। अपवाद एक रनटाइम वातावरण में होने वाली असाधारण स्थितियां हैं। ज्यादातर बार अपवाद हमारे कार्यक्रम के कोड के कारण होते हैं। लेकिन, अपवाद को कार्यक्रम द्वारा ही नियंत्रित किया जा सकता है, क्योंकि अपवाद पुनर्प्राप्त करने योग्य हैं। अपवादों को तीन कीवर्ड "कोशिश", "पकड़", "फेंक" का उपयोग करके नियंत्रित किया जाता है। अपवाद लिखने का सिंटैक्स है:

 {// अपना कोड यहां लिखें} कैच करें (एक्सेप्शन टाइप) {// अपना कोड यहां लिखें} 

उपरोक्त कोड में, कोशिश ब्लॉक में लिखा गया कोड वह कोड है जिसे आप अपवाद के लिए मॉनिटर करना चाहते हैं। यदि अपवाद एक कोशिश ब्लॉक में होता है, तो इसे "फेंक" कीवर्ड का उपयोग करके फेंक दिया जाता है। उपर्युक्त कोड के "कैच" ब्लॉक द्वारा अपवाद को फेंका जा सकता है। "अपवाद प्रकार" अपवाद का प्रकार है जो घटित हुआ है।

सरल शब्दों में हम कह सकते हैं कि गलत कोड के कारण हुई गलतियाँ अपवाद कहलाती हैं। उदाहरण के लिए, यदि एक अनुरोधित वर्ग नहीं मिला है, या एक अनुरोधित विधि नहीं मिली है। इस प्रकार के अपवाद कार्यक्रम में कोड के कारण हैं; सिस्टम इस प्रकार के अपवादों के लिए जिम्मेदार नहीं है। अपवादों को "जाँच" और "अनियंत्रित" के रूप में वर्गीकृत किया गया है। अनियंत्रित अपवाद कंपाइलर के ज्ञान में नहीं हैं क्योंकि वे रनटाइम के दौरान होते हैं, जबकि कंपाइलर को चेक किए गए अपवादों के बारे में ज्ञान होता है क्योंकि वे संकलन समय के दौरान कंपाइलर के लिए जाने जाते हैं।

त्रुटि और अपवाद में महत्वपूर्ण अंतर

  1. त्रुटि तब होती है जब सिस्टम संसाधन कम होते हैं, जबकि एक कोड में कुछ समस्या होने पर अपवाद होता है।
  2. एक त्रुटि को कभी भी पुनर्प्राप्त नहीं किया जा सकता है, जबकि अपवाद को संभालने के लिए कोड तैयार करके एक अपवाद को पुनर्प्राप्त किया जा सकता है।
  3. एक त्रुटि को कभी भी नियंत्रित नहीं किया जा सकता है, लेकिन एक अपवाद को कोड द्वारा नियंत्रित किया जा सकता है, यदि अपवाद फेंकने वाला कोड एक कोशिश और कैच ब्लॉक के अंदर लिखा गया हो।
  4. यदि कोई त्रुटि हुई है, तो प्रोग्राम असामान्य रूप से समाप्त हो जाएगा। दूसरी ओर, यदि अपवाद होता है, तो प्रोग्राम एक अपवाद को फेंक देगा, और इसे कोशिश और कैच ब्लॉक का उपयोग करके नियंत्रित किया जाएगा।
  5. त्रुटियां अनियंत्रित प्रकार की हैं अर्थात त्रुटि संकलक के ज्ञान में नहीं हैं, जबकि, एक अपवाद को जाँच और अनियंत्रित के रूप में वर्गीकृत किया गया है।
  6. त्रुटियों को java.lang.Error पैकेज में परिभाषित किया गया है, जबकि एक अपवाद java.lang.Exception परिभाषित किया गया है।

निष्कर्ष:

अपवाद प्रोग्राम के कोडिंग में की गई गलतियों के परिणाम हैं, और त्रुटियां सिस्टम के अनुचित कामकाज का परिणाम हैं

Top