Blok try-finally uniemożliwia StackOverflowError
Spójrz na dwie następujące metody:
public static void foo() {
try {
foo();
} finally {
foo();
}
}
public static void bar() {
bar();
}
Bieganiebar()
wyraźnie skutkujeStackOverflowError
, ale działafoo()
nie (program po prostu wydaje się działać w nieskończoność).Dlaczego?