Wpis z mikrobloga

Czytam Java the complete reference (H. Schildt) i natrafiłem na taki kod w dziale o exceptions:

static void procC() {
try {
System.out.println("inside procC");
} finally {
System.out.println("procC's finally");
}
}

Skoro nie ma ani catch, ani throws przy nazwie metody, to co łapie ten exception?
#naukaprogramowania #java
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

co łapie ten exception


@Balthier: Nie ma tutaj żadnego wyjątku i nic nie jest łapane. Wydaje mi się że przykład pokazuje jedynie jak działa finally.
try - spróbuj coś wykonać
catch - jeżeli poleciał przy tym wyjatek to go złap
finally - a na koniec bez względu na to co się stało powyżej zrób coś
W przypadku powyżej masz "spróbuj wypisać na ekranie inside procC" po czym masz
  • Odpowiedz
Sama konstrukcja try nie służy do łapania wyjątków - dopiero, kiedy występuje z catch. Tu masz try-finally, czyli konstrukcję, która zapewnia, że kod pod finally się wykona choćby nie wiem co (no chyba że prąd padnie ( ͡° ͜ʖ ͡°)). Często stosowana przy pracy z zasobami, które należy "otworzyć" a później "zamknąć" - wtedy zamykanie zasobu umieszczasz w finally, żeby zawsze się wykonało i nie
  • Odpowiedz