Sposoby obsługi wyjątków

Jednym za sposobów na obsługę wyjątków jest wykorzystanie bloku try-catch. Polega to na próbie przechwycenia/”złapania” wyjątku i na wykonaniu kodu w bloku catch. Blok try-catch przedstawie na podstawie RunTimeExcetion: InputMismatchException.

Na początku wywołujemy metodę która prosi użytkownika o podanie liczby. Następnie w bloku try umieściliśmy ten element programu który może wywołać wyjątek poprzez podanie błędnego typy danych np zamiast liczby użytkownik poda literę lub słowo. W bloku catch w nawiasach (został umieszczony konkretny już wyjątek) odpowiedzialny za tego typu sytuacje. Następnie w klamrach “{ }” zostały umieszczone instrukcje co co ma się wydarzyć gdy ów wyjątek wystąpi i zostanie przechwycony.

public static void main(String[] args) {

  Scanner input = new Scanner(System.in);
  System.out.println("Wpisz cyfrę: ");
    try {
    input.nextInt();
  } catch (InputMismatchException ex) {
   System.err.println("Nie wprowadziełeś cyfry");
 
  System.out.println(ex);
   }
  input.close();
}
Otrzymamy wynik jak poniżej:

Za pomocą metody System.err.println na konsoli została wyświetlona informacja skierowana do użytkownika systemu. To dzięki err ta wiadomości został wyświetlona na czerwono. W metodzie tej możemy zdefiniować informacje jaką chcemy przekazać odbiorcy. Natomiast dzięki metodzie System.out.println(ex) – została wyświetlona standardowa informacja na temat zaistniałego błędu którą niesie ze sobą wyjątek InputMismatchException.

Jednak to nie wszystko. Blok catch można jeszcze rozbudować o ex.printStackTrace(); Pozwala ona na wyświetlenie śladu stosu. Metoda ta jest dziedziczona z klasy Throwable. Stacktrace pozwala na znalezienie krok po kroku miejsca gdzie wystąpił problem. Dzięki temu w konsoli można zobaczyć stos wywołać w raz z informacjami w których wierszach i klasach wyjątek powstał:

Satcktrace

Warto zaznaczyć że Stacktrace się ie pojawia jeśli dany wyjątek nie jest obsługiwany. Wówczas program kończy swoje działanie.

Bądź pierwszy, który skomentuje ten wpis!

Dodaj komentarz

Twój adres email nie zostanie opublikowany.


*