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

Anonim

अपवाद बनाम त्रुटि

अप्रत्याशित व्यवहार तब होता है जब एक प्रोग्राम चल रहा है। यह अपवाद या त्रुटियों के कारण हो सकता है अपवाद घटनाएं हैं, जो सामान्य कार्यक्रम प्रवाह को परेशान कर सकते हैं। त्रुटियां ऐसी स्थिति हैं जिन्हें अपरिवर्तनीय माना जा सकता है। अपवाद अधिकतर अनुप्रयोग से संबंधित होते हैं, जबकि त्रुटियां उस सिस्टम से संबंधित होती हैं जिस पर प्रोग्राम चल रहा है।

अपवाद क्या है?

अपवाद एक घटना है, जो सामान्य कार्यक्रम प्रवाह को परेशान कर सकता है नाम अपवाद "असाधारण घटना" से आता है। एक अपवाद फेंकना एक अपवाद ऑब्जेक्ट बनाने और इसे रनटाइम सिस्टम पर सौंपने की प्रक्रिया है। अपवाद ऑब्जेक्ट अपवाद उत्पन्न होने वाली विधि द्वारा बनाया गया है। अपवाद ऑब्जेक्ट में उपयोगी जानकारी होती है जैसे अपवाद का प्रकार और वर्णन। जब रनटाइम सिस्टम अपवाद ऑब्जेक्ट प्राप्त करता है, तो इसे किसी को इसे रिवर्स ऑर्डर (जिस में विधियों को बुलाया गया था) में ले जाकर कॉल स्टैक के भीतर मिलाने की कोशिश करेंगे। कॉल स्टैक विधियों की क्रमबद्ध सूची है, जिसे अपवाद उत्पन्न होने वाली विधि से पहले कहा गया था। रनटाइम सिस्टम सफल होता है अगर उसे अपवाद हैंडलर के साथ एक विधि मिलती है अपवाद हैंडलर कोड का एक ब्लॉक है जो आधिकारिक तौर पर कहा अपवाद को संभाल सकता है। अगर रनटाइम सिस्टम को एक उपयुक्त हैंडलर मिल जाता है (i। प्रकार अपवाद का प्रकार उस प्रकार से मेल खाता है जो कि हो सकता है), तो वह हेन्डलर को अपवाद ऑब्जेक्ट पास करेगा इसे अपवाद पकड़ने कहा जाता है हालांकि, यदि अपवाद को संभाला नहीं जा सकता है, तो प्रोग्राम समाप्त हो जाएगा। जावा में अपवाद 'थ्रोएबल क्लास' से प्राप्त होता है। 'NullPointerException और ArrayIndexOutOfBoundsException जावा में दो आम अपवाद हैं

एक त्रुटि क्या है?

एक त्रुटि एक ऐसी स्थिति है जिसे अपरिवर्तनीय माना जा सकता है, जैसे कि कार्यक्रम जो उपलब्ध है उससे बड़ा स्मृति की आवश्यकता होती है। रनटाइम पर इन त्रुटियों को नियंत्रित नहीं किया जा सकता यदि कोई त्रुटि आती है, तो प्रोग्राम समाप्त हो जाएगा। जावा में त्रुटियां थ्रोएबल क्लास से होती हैं। त्रुटियां आम तौर पर गंभीर समस्याओं के लिए खड़ी होती हैं जो प्रोग्रामर (या ऐप्लिकेशन) को पकड़ने की कोशिश नहीं करनी चाहिए। गलतियां केवल असामान्य स्थिति हैं, जिन्हें कभी-कभी सामान्य परिस्थितियों में होने की उम्मीद नहीं होती है, और इसलिए कभी भी कल्पना नहीं की जाती। उदाहरण के लिए, OutOfMemoryError, StackOverflowError और ThreadDead ऐसी त्रुटियाँ हैं त्रुटियों के लिए तरीके कभी भी हैंडलर नहीं होना चाहिए

-3 ->

अपवाद और त्रुटि के बीच क्या अंतर है?

एक कार्यक्रम के निष्पादन के दौरान दोनों त्रुटियां और अपवाद अवांछित घटना हैं। हालांकि, उनके पास महत्वपूर्ण मतभेद हैं अपवाद को प्रोग्रामर द्वारा अनुमानित किया जा सकता है, जबकि त्रुटि को आगाह करना मुश्किल हैअपवादों को चेक या अनचेक किया जा सकता है। लेकिन त्रुटियां हमेशा अनियंत्रित होती हैं अपवाद आम तौर पर प्रोग्रामर की वजह से त्रुटि को इंगित करता है। हालांकि, किसी सिस्टम त्रुटि या संसाधन के अनुचित उपयोग के कारण त्रुटियां उत्पन्न होती हैं। इसलिए, अनुप्रयोग स्तर पर अपवादों को संभाला जाना चाहिए, जबकि त्रुटियों को सिस्टम स्तर पर रखना चाहिए (केवल तभी संभव है)। एक अपवाद को संभालने के बाद, आप सामान्य कार्यक्रम प्रवाह पर लौटने की गारंटी है। लेकिन भले ही एक त्रुटि पकड़ी गई हो, तो प्रोग्रामर को यह नहीं पता कि यह कैसे पहली जगह में संभाल सकता है। पारंपरिक त्रुटि से निपटने के विपरीत, अपवाद नियमित कोड से त्रुटि-हैंडलिंग कोड को अलग करने की अनुमति देता है।