O bloco try-finally impede StackOverflowError
Dê uma olhada nos dois métodos a seguir:
public static void foo() {
try {
foo();
} finally {
foo();
}
}
public static void bar() {
bar();
}
Corridabar()
resulta claramente em umStackOverflowError
, mas correndofoo()
não (o programa parece funcionar indefinidamente).Por que é que?