java - मैं जावा में बिना अपवाद फेंकने की कोशिश/कैच ब्लॉक से कैसे टूट सकता हूं




try-catch-finally (5)

मुझे एक अपवाद को फेंकने के बिना कोशिश / पकड़ने ब्लॉक के बीच से तोड़ने का एक तरीका चाहिए। कुछ जो ब्रेक के समान है और लूप के लिए जारी है। क्या यह संभव है?

मैं एक कस्टम अपवाद को फेंकने के बारे में अजीब थ्रेट्स प्राप्त कर रहा हूं (इसे "ब्रेककॉन्फ़्यूसेप्शन" नाम दिया गया है) कि सरल इसके कैच हैंडलर में कुछ भी नहीं करता है। मुझे यकीन है कि यह बहुत मुड़ा हुआ है।

तो, किसी भी सीधे आगे के समाधान के बारे में मुझे पता नहीं है?


आप इसे हमेशा लूप कंस्ट्रक्शन से break साथ कर सकते हैं या इनोबीज़ उत्तर में निर्दिष्ट लेबल पर break लगा सकते हैं।

public static void main(String[] args) {
    do {
        try {
            // code..
            if (condition)
                break;
            // more code...
        } catch (Exception e) {

        }
    } while (false);
}

इसे करने के कई तरीके हैं:

  1. एक नई विधि में कोड को स्थानांतरित करें और उससे return

  2. कोशिश करें / पकड़ को एक do{}while(false); लपेटें do{}while(false); पाश।


पकड़ ब्लॉक में इस नमूने में मैं काउंटर के मूल्य को बदल देता हूं और ब्लॉक करते समय यह टूट जाएगा:

class TestBreak {
    public static void main(String[] a) {
        int counter = 0;

        while(counter<5) {
            try {
                counter++;
                int x = counter/0;
            }
            catch(Exception e) {
                counter = 1000;    
            }
        }
    }
}k

यह वह कोड है जो मैं आमतौर पर करता हूं:

 try
 {
    ...........
    throw null;//this line just works like a 'break'
    ...........   
  }
  catch (NullReferenceException)
  { 
  }
  catch (System.Exception ex)
  {
      .........
  }

return बारे return यह कैसे होगा, अगर कोई finally नहीं है







try-catch-finally