Salt la conținutul principal
Modulul 5 · Lecția 1 din 29/14 în curs~12 min
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.

Java
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.

Java
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.

Java
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

Exercițiu#java.m5.l1.e1
Încercări: 0Se încarcă…

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”.

Se încarcă editorul...
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

Exercițiu#java.m5.l1.e2
Încercări: 0Se încarcă…

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”.

Se încarcă editorul...
Afișează indiciu

Scrieți structura de bloc `try { ... } catch (NumberFormatException e) { ... } în final { ... }`.

Soluție disponibilă după 3 încercări

Exercițiu#java.m5.l1.e3
Încercări: 0Se încarcă…

Completați metoda checkAge lansând o IllegalArgumentException cu mesajul „Underage” dacă vârsta furnizată este mai mică de 18 ani.

Se încarcă editorul...
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