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

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

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

वीडियो: अपवाद और त्रुटि के बीच अंतर
वीडियो: Symbian ^3, Maemo, MeeGo, Sailfish comparison 2024, नवंबर
Anonim

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

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

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

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

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

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

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

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

सिफारिश की: