Blok "finally" jest zawsze wykonywany, gdy kończy się try-catch, w przypadku wyjątku lub nie. Ale również każda linia kodu na zewnątrz i po próbie catch jest zawsze wykonywana. Dlaczego więc powinienem użyć instrukcji finally?Jaka jest korzyść z używania "finally" po bloku try-catch w java?
Przykład:
try {
//code...
} catch (Exception e) {
//code...
} finally {
System.out.println("This line is always printed");
}
System.out.println("Also this line is always printed !! So why to use 'finally'?? ");
Powinienem był użyć – Aarath
Z catch (Throwable t) zamiast catch (Exception e) ostatnia linia będzie zawsze wykonywana. – Aarath
Jest to częsty wzorzec do zgłaszania nowych wyjątków w blokach catch, a na koniec pozwala wyczyścić elementy z bloku try przed wysłaniem nowego wyjątku. Jest bardzo przydatny. Zapis powoduje również, że kod jest bardziej semantyczny. –