अनुशंसित, 2020

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

जावा में जाँच और अनियंत्रित अपवाद के बीच अंतर

"थ्रोबेबल" कक्षाओं का मूल वर्ग है त्रुटि और अपवाद। वर्ग "RuntimeException" और उसके उपवर्ग, वर्ग "त्रुटि" और उसके बच्चे वर्ग "अनियंत्रित अपवाद" हैं, जबकि, "RuntimeException" को छोड़कर वर्ग "अपवाद" के शेष उपवर्गों की जाँच अपवाद हैं। जाँच किए गए और अनियंत्रित अपवाद के बीच मूल अंतर यह है कि जाँच किए गए अपवादों को कंपाइलर द्वारा चेक किया जाता है, जबकि कंपाइलर अनियंत्रित अपवादों की जाँच नहीं करता है

आइए तुलना चार्ट की मदद से चेक किए गए और अनियंत्रित अपवादों के बीच के अन्य अंतरों पर चर्चा करें।

तुलना चार्ट

तुलना के लिए आधारअपवाद की जाँच कीअनियंत्रित अपवाद
बुनियादीसंकलक जाँच किए गए अपवाद की जाँच करता है।संकलक अनियंत्रित अपवाद की जांच नहीं करता है।
अपवाद की कक्षा"RuntimeException" क्लास को छोड़कर "Exception" क्लास के सभी चाइल्ड क्लास, और "Error" क्लास और उसके चाइल्ड क्लास को Check Exception रखा गया है।"RuntimeException" वर्ग और उसके बच्चे वर्ग, "अनियंत्रित अपवाद" हैं।
हैंडलिंगयदि हम चेक किए गए अपवाद को नहीं संभालते हैं, तो संकलक ऑब्जेक्ट।यहां तक ​​कि अगर हम अनियंत्रित अपवाद को नहीं संभालते हैं, तो संकलक को कोई आपत्ति नहीं है।
संकलनयदि प्रोग्राम कोड में अनहैन्ड चेक अपवाद है, तो प्रोग्राम संकलित नहीं करता है।प्रोग्राम कोड में एक अनियंत्रित अनियंत्रित अपवाद होने पर भी प्रोग्राम सफलतापूर्वक संकलित करता है।

चेक्ड एक्सेप्शन की परिभाषा

चेक किए गए अपवाद वे अपवाद हैं जिन्हें प्रोग्राम के सुचारू निष्पादन के लिए कंपाइलर द्वारा चेक किया जाता है। कंपाइलर जांचता है कि प्रोग्राम चेक किए गए अपवाद को संभाल सकता है या नहीं। यदि कोड अपवाद को संभालने में असमर्थ है, तो संकलन त्रुटि होती है। RuntimeException वर्ग को छोड़कर वर्ग "अपवाद" के सभी उपवर्गों की जाँच अपवाद हैं।
आइए एक उदाहरण के साथ चेक किए गए अपवाद का अध्ययन करें।

 आयात java.io. *; वर्ग उदाहरण {सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग args []) {FileInputStream fis = null; fis = new FileInputStream ("B: /myfile.txt"); // यह कंस्ट्रक्टर FileInputStream (फाइल फाइलनाम) FileNotFoundException को फेंकता है जो कि एक चेक किया हुआ अपवाद है। इंट के; जबकि (k = fis.read ())! = -1) {// FileInputStream क्लास का मेथड रीड () भी एक चेक किया हुआ अपवाद फेंकता है: IOException। System.out.print ((चार) के); } fis.close (); // विधि पास () फ़ाइल इनपुट स्ट्रीम को बंद करती है जो IOException को फेंकती है। }} 

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

अनियंत्रित अपवाद की परिभाषा

अनियंत्रित अपवाद वे अपवाद हैं, जो संकलक द्वारा जांचे नहीं जाते हैं। कंपाइलर प्रोग्राम को सफलतापूर्वक संकलित करता है, भले ही अपवादों को कोड द्वारा नियंत्रित नहीं किया गया हो। वर्ग "त्रुटि" और उसके बच्चे वर्ग, वर्ग "रनटाइम" और उसके उपवर्ग अनियंत्रित अपवाद हैं।

आइए हम एक अनियंत्रित अपवाद का एक उदाहरण देखें।

 वर्ग उदाहरण {सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग args []) {int arr [] = {1, 2, 3, 4, 5}; Println (आगमन [7]); //सीमा अपवाद के बाहर सरणी सूचकांक। }} 

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

जाँच और अनियंत्रित अपवाद के बीच मुख्य अंतर

  1. जांचे गए अपवाद कंपाइलर के ज्ञान में हैं, जबकि अनियंत्रित अपवाद कंपाइलर के ज्ञान में नहीं हैं।
  2. RuntimeException और Error वर्ग को छोड़कर सभी वर्गों को अपवाद के रूप में जांचा जाता है। दूसरी ओर, RuntimeException और Error classes अनियंत्रित अपवाद हैं।
  3. यदि जाँच किए गए अपवाद कोड द्वारा संकलित नहीं किए जाते हैं तो संकलक ऑब्जेक्ट। दूसरी ओर, यदि हम कोड में अनियंत्रित अपवादों को नहीं संभालते हैं तो संकलक को कोई आपत्ति नहीं है।
  4. यदि जाँच किए गए अपवाद कोड में होते हैं तो कोड संकलित नहीं करेगा, जबकि अनियंत्रित अपवाद कोड द्वारा संकलित नहीं किए जाने पर भी कोड संकलित करता है।

ध्यान दें :

दोनों जाँच या अनियंत्रित अपवाद अनिवार्य रूप से रनटाइम के दौरान होता है। वे केवल संकलक द्वारा संकलित समय के दौरान जाँच या अनियंत्रित होते हैं।

निष्कर्ष:

कार्यक्रम को सुचारू रूप से निष्पादित करने के लिए चेक किए गए और अनियंत्रित अपवाद दोनों को नियंत्रित किया जाना चाहिए।

Top