उचित सबूत प्रदान करने के प्रयास में कि यह आखिरकार समाप्त हो जाएगा, मैं निम्नलिखित बल्कि अर्थहीन कोड प्रदान करता हूं। नोट: जावा मेरी भाषा नहीं है, सबसे ज्वलंत कल्पना के किसी भी खिंचाव से। मैं इसे केवल पीटर के उत्तर का समर्थन करने के लिए मानता हूं, जो प्रश्न का सही उत्तर है।
यह तब होता है जब एक आह्वान नहीं हो सकता है क्योंकि यह एक ढेर अतिप्रवाह शुरू होता है की स्थितियों को अनुकरण करने का प्रयास करता है। मुझे ऐसा लगता है सबसे मुश्किल बात यह है कि लोगों में समझ है कि आह्वान नहीं होता है जब यह विफल हो रहे हैं नहीं कर सकते हो।
public class Main
{
public static void main(String[] args)
{
try
{ // invoke foo() with a simulated call depth
Main.foo(1,5);
}
catch(Exception ex)
{
System.out.println(ex.toString());
}
}
public static void foo(int n, int limit) throws Exception
{
try
{ // simulate a depth limited call stack
System.out.println(n + " - Try");
if (n < limit)
foo(n+1,limit);
else
throw new Exception("StackOverflow@try("+n+")");
}
finally
{
System.out.println(n + " - Finally");
if (n < limit)
foo(n+1,limit);
else
throw new Exception("StackOverflow@finally("+n+")");
}
}
}
Goo के इस छोटे बिंदुहीन ढेर का आउटपुट निम्नलिखित है, और पकड़ा गया वास्तविक अपवाद आश्चर्य के रूप में आ सकता है; ओह, और 32 कोशिश-कॉल (2 ^ 5), जो पूरी तरह से अपेक्षित है:
1 - Try
2 - Try
3 - Try
4 - Try
5 - Try
5 - Finally
4 - Finally
5 - Try
5 - Finally
3 - Finally
4 - Try
5 - Try
5 - Finally
4 - Finally
5 - Try
5 - Finally
2 - Finally
3 - Try
4 - Try
5 - Try
5 - Finally
4 - Finally
5 - Try
5 - Finally
3 - Finally
4 - Try
5 - Try
5 - Finally
4 - Finally
5 - Try
5 - Finally
1 - Finally
2 - Try
3 - Try
4 - Try
5 - Try
5 - Finally
4 - Finally
5 - Try
5 - Finally
3 - Finally
4 - Try
5 - Try
5 - Finally
4 - Finally
5 - Try
5 - Finally
2 - Finally
3 - Try
4 - Try
5 - Try
5 - Finally
4 - Finally
5 - Try
5 - Finally
3 - Finally
4 - Try
5 - Try
5 - Finally
4 - Finally
5 - Try
5 - Finally
java.lang.Exception: StackOverflow@finally(5)
finally
क्लॉज के प्रसंस्करण के दौरान फेंकी गई त्रुटियां अगले स्तर तक फैल जाएंगी। लेकिन अपनी सांस को रोककर मत रखो; उठाए गए कदमों की संख्या लगभग 2 से (अधिकतम स्टैक गहराई) होगी और अपवादों को फेंकना बिलकुल भी सस्ता नहीं है।