जावा में अपवाद हैंडलर क्या है?

जावा में, अपवाद कई संरचनाओं में से एक हैं जो एक कार्यक्रम के नियंत्रण प्रवाह को नियंत्रित करते हैं। विशेष रूप से, वे एक कार्यक्रम के सामान्य निष्पादन के अनपेक्षित दुष्प्रभाव हैं। जब कोड अपवाद को लिख सकता है, तो प्रोग्रामर को प्रोग्राम के लिए नए निर्देशों को परिभाषित करना होगा यदि यह एक अपवाद, एक प्रक्रिया "अपवाद हैंडलिंग" के रूप में जाना जाता है। अपवाद हैंडलर तीन अलग-अलग ब्लॉकों से बने होते हैं: प्रयास करें, पकड़ें और अंत में।

जावा अपवाद

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

ब्लॉक का प्रयास करें

एक सफल अपवाद हैंडलर में, अपवाद को फेंकने की विधि को "कोशिश" ब्लॉक में समाहित किया जाना चाहिए, जैसा कि "try {अपवादThrowingMethod ();}"; प्रयास ब्लॉक को परिभाषित करने के बाद, प्रोग्रामर अपवादों को पकड़ने के तरीकों को परिभाषित करके ब्लॉक को परिभाषित करता है; कोशिश ब्लॉक फेंक में निहित है।

ब्लॉक पकड़ो

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

अंत में ब्लॉक

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

लोकप्रिय पोस्ट