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.
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.
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.
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
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'.
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
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'.
Pokaż wskazówkę
Zapisz strukturę `try { ... } catch (NumberFormatException e) { ... } finally { ... }`.
Rozwiązanie dostępne po 3 próbach
Uzupełnij metodę checkAge, zgłaszając wyjątek IllegalArgumentException z komunikatem 'Underage', jeśli podany wiek jest mniejszy niż 18 lat.
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