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

क्या हम जावा में किसी अन्य प्रयास कैच ब्लॉक के भीतर एक कोशिश पकड़ने वाले ब्लॉक की घोषणा कर सकते हैं?

हां , हम एक . घोषित कर सकते हैं दूसरे ट्राइ-कैच ब्लॉक में ट्राइ-कैच ब्लॉक, इसे नेस्टेड ट्राइ-कैच ब्लॉक कहा जाता है।

नेस्टेड ट्राई-कैच ब्लॉक

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

सिंटैक्स

try {
   statement 1;
   statement 2;
   try {
      statement 1;
      statement 2;
   }
   catch(Exception e) {
      // catch the corresponding exception  
   }  
}
catch(Exception e) {
   // catch the corresponding exception
}
   .............

उदाहरण

import java.io.*;
public class NestedTryCatchTest {
   public static void main (String args[]) throws IOException {
    int n = 10, result = 0;
      try { // outer try block
         FileInputStream fis = null;
         fis = new FileInputStream (new File (args[0]));
         try { // inner trty block
            result = n/0;
            System.out.println("The result is"+result);
         }  
         catch(ArithmeticException e) { // inner catch block
            System.out.println("Division by Zero");
         }
      }
      catch (FileNotFoundException e) { // outer catch block
         System.out.println("File was not found");
      }
      catch(ArrayIndexOutOfBoundsException e) { // outer catch block
         System.out.println("Array Index Out Of Bounds Exception occured ");
      }
      catch(Exception e) { // outer catch block
         System.out.println("Exception occured"+e);
      }
   }
}

आउटपुट

Array Index Out Of Bounds Exception occured

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

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

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

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

  1. क्या हम जावा में एक मुख्य विधि को निजी घोषित कर सकते हैं?

    हां, हम जावा में मुख्य विधि को निजी घोषित कर सकते हैं। यह बिना किसी त्रुटि के सफलतापूर्वक संकलित करता है लेकिन रनटाइम पर, यह कहता है कि मुख्य विधि सार्वजनिक नहीं है। उदाहरण: class PrivateMainMethod {    private static void main(String args[]){        System.out.println