Aktywne Wpisy
IreuN +39
źródło: temp_file4479700554743394704
Pobierz
wfyokyga +43
Beunos Aires
źródło: temp_file8631431092229834769
PobierzSkopiuj link
Skopiuj link
źródło: temp_file4479700554743394704
Pobierz
źródło: temp_file8631431092229834769
PobierzWykop.pl
try - spróbuj coś zrobić
catch - złap wyjątek podczas tych czynności, np. może dzielisz przez 0 a nie chcesz, żeby wszystko się rozsypało
finally - a niezależnie czy się udało zrobić rzeczy w try czy nie. na koniec coś tam zrób
Jezeli kod w bloku try wyrzuci exception to przejdzie do wykonywania bloku catch.
Za to blok finaly wykona sie zawsze na koncu, niezaleznie od wystapienia exceptiona.
Dodatkowo moze byc jeden try i po nim kilka catchy, ktore wykonaja sie jedynie w przypadku okreslonego exceptiona.
try {
Polecenia do wykonania
} catch (SomeException sex) {
Polecenia do wykonywania, gdy poleci wyjątek typu SomeException
} catch (Exception ex) {
Polecenia do wykonania, gdy poleci wyjątek typu Exception, który nie został złapany wyżej
} finally {
Polecenia do wykonania niezależnie czy były wyjątki czy nie
}
Np.
Exception ex
SomeException | OtherException ex
Wyjątki nie są od kontrolowania logiki aplikacji, szczególnie że tworzenie wyjątku jest dość czasochłonne.
Ale są operacje gdzie nie jesteś w stanie sprawdzić wszystkiego,
nie zawsze, np ponizej jesli System.exit() nie wyrzuci SecurityException to finally sie nie wykona NIGDY.
try {System.out.println("try");
System.exit(0)
}
catch (Exception ex) {
System.out.println("catch");
}
finally {
System.out.println("finally");
}
Skoro zmuszasz aplikacje do wyjścia, no to wychodzi, no co w tym dziwnego.
Nigdy nie rozumiałem wrzucania tego przykładu wszędzie gdzie ktoś pisze o finally...