Lecții din modul (1/2)
Blocuri Try-Catch
În Java, erorile de rulare sunt gestionate folosind Excepții. Gestionarea excepțiilor ne permite să interceptăm condiții anormale și să prevenim blocarea programului.
Structura try-catch
Pentru a gestiona o posibilă excepție, includem codul riscant într-un bloc try. Dacă apare o eroare în interiorul blocului try, JVM-ul oprește executarea acesteia și caută un bloc catch care să gestioneze excepția.
try {
int result = 10 / 0; // Generates ArithmeticException
System.out.println("This will not be printed");
} catch (ArithmeticException e) {
System.out.println("Arithmetic error occurred: " + e.getMessage());
}Blocul finally
Blocul finally este opțional și este întotdeauna executat, indiferent dacă a fost aruncată o excepție. Este ideal pentru eliberarea resurselor sau efectuarea operațiunilor de curățare.
try {
System.out.println("Executing logic");
} catch (Exception e) {
System.out.println("Error");
} finally {
System.out.println("This block is always executed");
}Se aruncă excepții: throw
Putem arunca în mod intenționat o excepție folosind cuvântul cheie throw urmat de o nouă instanță a unei clase de excepție.
public static void checkScore(int score) {
if (score < 0 || score > 100) {
throw new IllegalArgumentException("Score must be between 0 and 100");
}
}Încercați-l singur
Completați codul inserând un bloc try-catch pentru a gestiona o potențială ArithmeticException rezultată din diviziunea a/b. În cazul unei erori, tipăriți „Eroare: împărțire la zero”.
Afișează indiciu
Introduceți operația de divizare într-un bloc `try` și prindeți `ArithmeticException`, imprimând mesajul necesar.
Soluție disponibilă după 3 încercări
Completați codul pentru a implementa un bloc try-catch-finally. În blocul try, încercați să convertiți șirul str într-un număr întreg folosind Integer.parseInt. În blocul catch, interceptați NumberFormatException și imprimați „Număr invalid”. În blocul final, tipăriți „În sfârșit”.
Afișează indiciu
Scrieți structura de bloc `try { ... } catch (NumberFormatException e) { ... } în final { ... }`.
Soluție disponibilă după 3 încercări
Completați metoda checkAge lansând o IllegalArgumentException cu mesajul „Underage” dacă vârsta furnizată este mai mică de 18 ani.
Afișează indiciu
Utilizați `dacă (vârsta < 18)` și cuvintele cheie `throw new` pentru a instanția și a arunca excepția.
Soluție disponibilă după 3 încercări