Co to jest moduł obsługi wyjątków w Javie?

W Javie wyjątki są jedną z wielu struktur, które sterują przepływem sterowania programu. W szczególności są niezamierzonymi efektami ubocznymi normalnej realizacji programu. Podczas pisania kodu, który może napotkać wyjątki, programista musi zdefiniować nowe instrukcje dla programu, jeśli napotka wyjątek, proces znany jako "obsługa wyjątków". Moduły obsługi wyjątków składają się z trzech różnych bloków: try, catch i finally.

Wyjątki od języka Java

Kiedy program wywołuje metodę, która zachowuje się w nieoczekiwany sposób, mówi się, że napotkał "wyjątek". Na przykład, jeśli program spróbuje podzielić liczbę przez zero lub załaduje plik, który nie istnieje, program może nie działać zgodnie z oczekiwaniami i wygeneruje wyjątek sygnalizujący ten błąd. Jeśli zdefiniowana jest metoda zgłaszania wyjątku w treści metody, można wywołać ją tylko wewnątrz procedury obsługi wyjątku - lub przekazać błąd do drzewa, deklarując, że metoda, która go wywołuje, zgłasza ten sam wyjątek.

Spróbuj bloków

W udanym module obsługi wyjątku metoda, która zgłasza wyjątek musi być zawarta w bloku "try", jak w "try {exceptionThrowingMethod ();}" Po zdefiniowaniu bloku try programista definiuje bloki catch, które wychwytują metody wyjątków zawarte w rzucie bloku try.

Catch Blocks

Pojedynczy blok try może mieć wiele bloków catch do definiowania różnych zachowań w przypadku napotkania wyjątku. Jeśli program napotka wyjątek, który jest zdefiniowany w wielu blokach przechwytujących, najpierw wykona najwyższy blok catch. Ponieważ wszystkie wyjątki pochodzą od klasy wyjątków, oznacza to, że jeśli twój pierwszy blok catch odczytuje "catch (Exception e) {}", program zawsze będzie uruchamiał ten blok, gdy napotka wyjątek, a nigdy żaden inny. Rozmieść swoje bloki catch z najbardziej specyficznych na najmniej szczegółowe, jeśli chcesz mieć szczegółową kontrolę nad swoim programem.

Wreszcie bloki

Blok "finally" jest opcjonalnym elementem obsługi wyjątku. Użyj go, aby zdefiniować zachowanie, które powinno zawsze być wykonywane nawet w przypadku napotkania wyjątku. Jest to konieczne w niektórych przypadkach, ponieważ nie można zagwarantować, że ostatnia część bloku try zostanie wykonana. Jeśli wyjątek zostanie zgłoszony i przechwycony, blok zostanie przerwany w tym momencie. Na przykład umieszczenie "InputStream.close ()" w bloku finally zapewnia, że ​​niezależnie od wyjątku wyrzuconego wcześniej w kodzie, twoje strumienie zostaną bezpiecznie zamknięte.

Popularne Wiadomości