जांच की अपवाद और रनटाइम अपवाद के बीच का अंतर

Anonim

चेक अपवाद बनाम रनटाइम अपवाद

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

चेक किए गए अपवाद क्या है?

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

रनटाइम अपवाद क्या है?

रनटाइम अपवाद में जावा शामिल है लैंग। रनटाइम अपवाद और इसके सभी उप वर्ग सैद्धांतिक रूप से बोलते हुए, वे एक ही उद्देश्य की जाँच की गई अपवादों की तरह काम करते हैं, और उन्हें चेक अपवाद की तरह फेंका या नियंत्रित किया जा सकता है, लेकिन उनमें से हैंडलिंग को संकलक द्वारा लागू नहीं किया जाता है। इसलिए, रनटाइम अपवाद अनियंत्रित अपवादों के परिवार से संबंधित हैं। NullPointerException, NumberFormatEception, ClassCastException और ArrayIndexOutOfBoundsException जावा में सामान्य रनटाइम अपवाद हैं

-3 ->

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

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

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