Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Java

जावा में अगम्य कैच ब्लॉक क्या हैं?


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

सिंटैक्स

try {
   // statements
} catch(Exception e) {
   System.out.println(e);
} catch(NumberFormatException nfe) { //unreachable block. Not supported by Java, leads to an error.
   System.out.println(nfe);
}

एक कैच क्लॉज को कंपाइलर द्वारा पहुंच योग्य माना जाता है यदि निम्नलिखित दोनों स्थितियां सत्य हैं

  • कोशिश ब्लॉक में फेंका गया एक चेक अपवाद सी के पैरामीटर के लिए असाइन करने योग्य है।
  • कोई पिछला कैच क्लॉज नहीं है जिसका पैरामीटर प्रकार C के पैरामीटर प्रकार के बराबर या सुपरटाइप है

एक कैच क्लॉज को कंपाइलर द्वारा पहुंच योग्य माना जाता है, यदि निम्न में से दोनों स्थितियां सत्य हैं तो पहुंच योग्य नहीं हो सकता है

  • कैच क्लॉज पैरामीटर प्रकार ई में कोई अनियंत्रित अपवाद शामिल नहीं है।
  • प्रयास ब्लॉक में फेंके गए सभी अपवाद जिनका प्रकार ई का एक (सख्त) उपप्रकार है, पहले से ही पिछले कैच क्लॉज द्वारा नियंत्रित किया जाता है।

उदाहरण

public class UnreachableBlock{
   public static void main(String[] args) {
      try {
         int i = Integer.parseInt("abc"); //This statement throws NumberFormatException
      } catch(NumberFormatException nfe) {
         System.out.println("This block handles NumberFormatException");
      } catch(Exception e) {
         System.out.println("This block handles all exception types");
      } catch (Throwable t) {
         System.out.println("Throwable is super class of Exception");
      }
   }
}

आउटपुट

This block handles NumberFormatException

  1. जावा कक्षा में स्थिर सदस्यों को पढ़ने के लिए क्या कदम हैं?

    स्टैटिक ब्लॉक के निष्पादन से पहले ही क्लास लोडिंग के समय एक स्टैटिक वेरिएबल बन जाता है और स्टैटिक ब्लॉक का उद्देश्य स्टैटिक वेरिएबल्स को वैल्यू असाइन करना होता है। एक स्थिर चर उस मान को संग्रहीत करता है जिसे उस वर्ग के सभी उदाहरणों के बीच साझा किया जाता है जिसमें इसे परिभाषित किया जाता है और एक स्थि

  1. क्या हम जावा में एक से अधिक कैच ब्लॉक वाले ट्राई ब्लॉक को परिभाषित कर सकते हैं?

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

  1. क्या हमारे पास जावा में कैच ब्लॉक के बिना एक कोशिश ब्लॉक हो सकता है?

    हां, अंतिम ब्लॉक का उपयोग करके कैच ब्लॉक के बिना कोशिश ब्लॉक करना संभव है। जैसा कि हम जानते हैं, एक अंतिम ब्लॉक हमेशा निष्पादित होगा, भले ही एक कोशिश ब्लॉक में एक अपवाद हुआ हो, System.exit() को छोड़कर यह हमेशा निष्पादित होगा। उदाहरण 1 public class TryBlockWithoutCatch {    public static vo