Przejdź do głównej treści
eLearner.app
Moduł 5 · Lekcja 1 z 29/14 w kursie~12 min
Lekcje modułu (1/2)

Bloki try-catch

W Javie błędy występujące podczas wykonywania programu są obsługiwane za pomocą Wyjątków (Exceptions). Obsługa wyjątków pozwala na przechwytywanie anomalii i zapobiega nagłemu zakończeniu programu.

Struktura try-catch

Aby obsłużyć potencjalny wyjątek, umieszczamy ryzykowny kod wewnątrz bloku try. Jeśli wewnątrz try wystąpi błąd, JVM przerywa wykonywanie bloku i szuka odpowiedniego bloku catch w celu obsłużenia wyjątku.

Code
try {
    int result = 10 / 0; // Genera un'eccezione ArithmeticException
    System.out.println("Questo non verrà stampato");
} catch (ArithmeticException e) {
    System.out.println("Si è verificato un errore aritmetico: " + e.getMessage());
}

Blok finally

Blok finally jest opcjonalny i jest wykonywany zawsze, niezależnie od tego, czy wyjątek został zgłoszony, czy nie. Jest idealny do zwalniania zasobów lub wykonywania operacji porządkowych.

Code
try {
    System.out.println("Esecuzione logica");
} catch (Exception e) {
    System.out.println("Errore");
} finally {
    System.out.println("Questo blocco viene sempre eseguito");
}

Zgłaszanie wyjątków: throw

Możemy celowo zgłosić wyjątek za pomocą słowa kluczowego throw, po którym następuje nowa instancja klasy wyjątku.

Code
public static void checkScore(int score) {
    if (score < 0 || score > 100) {
        throw new IllegalArgumentException("Il punteggio deve essere compreso tra 0 e 100");
    }
}

Spróbuj sam

Ćwiczenie#java.m5.l1.e1
Próby: 0Ładowanie...

Uzupełnij kod, wstawiając blok try-catch, aby obsłużyć ewentualny wyjątek ArithmeticException wynikający z dzielenia a / b. W przypadku błędu wypisz 'Error: division by zero'.

Ładowanie edytora...
Pokaż wskazówkę

Umieść operację dzielenia wewnątrz bloku `try` i przechwyć `ArithmeticException` wypisując wymagany komunikat.

Rozwiązanie dostępne po 3 próbach

Ćwiczenie#java.m5.l1.e2
Próby: 0Ładowanie...

Uzupełnij kod, implementując blok try-catch-finally. W bloku try spróbuj przekonwertować ciąg str na liczbę całkowitą za pomocą Integer.parseInt. W catch przechwyć NumberFormatException i wypisz 'Invalid number'. W bloku finally wypisz 'Finally'.

Ładowanie edytora...
Pokaż wskazówkę

Zapisz strukturę `try { ... } catch (NumberFormatException e) { ... } finally { ... }`.

Rozwiązanie dostępne po 3 próbach

Ćwiczenie#java.m5.l1.e3
Próby: 0Ładowanie...

Uzupełnij metodę checkAge, zgłaszając wyjątek IllegalArgumentException z komunikatem 'Underage', jeśli podany wiek jest mniejszy niż 18 lat.

Ładowanie edytora...
Pokaż wskazówkę

Użyj `if (age < 18)` oraz słowa kluczowego `throw new`, aby utworzyć instancję i zgłosić wyjątek.

Rozwiązanie dostępne po 3 próbach