Try-finally block prevents StackOverflowError
Take a look at the following two methods: public static void foo() { try { foo(); } finally { foo(); } } public static void bar() { bar(); } Running bar() clearly results in a StackOverflowError, but running foo() does not (the program just seems to run indefinitely). Why is that? 6 Answers 6