Skip to content

Gestionarea Excepțiilor în Java — try-catch, throws, custom exceptions

DodaTech Updated 2025-01-15 2 min read

In this tutorial, you'll learn about Gestionarea Excepțiilor în Java. We cover key concepts, practical examples, and best practices.

Gestionarea excepțiilor în Java se face prin mecanismul try-catch-finally și declararea excepțiilor cu throws, permițându-ți să separi codul de eroare de logica normală și să creezi excepții personalizate pentru domeniul tău.

The Problem

Ignorarea excepțiilor sau gestionarea lor necorespunzătoare duce la aplicații instabile, erori greu de depistat și experiență proastă pentru utilizator. Acest quick-fix îți arată cum să gestionezi corect excepțiile.

The Wrong Way

public String readFile(String path) {
    return new String(Files.readAllBytes(Paths.get(path)));
}

Output:

Exception in thread "main" java.io.IOException: No such file

Excepția e propagată nesigur, fără mesaj context sau recovery.

The Right Way

import java.io.*;
import java.nio.file.*;

public String readFileSafe(String path) {
    try {
        return new String(Files.readAllBytes(Paths.get(path)));
    } catch (IOException e) {
        System.err.println("Eroare la citirea fișierului: " + path);
        return ""; // valoare default
    }
}

Step-by-Step Fix

1. Învelește codul periculos în try-catch

try {
    // cod care poate arunca excepții
    Files.readAllBytes(path);
} catch (IOException e) {
    // recuperare sau logare
    e.printStackTrace();
}

2. Folosește multi-catch pentru excepții similare

catch (IOException | SQLException e) {
    logger.error("Operațiunea a eșuat", e);
}

3. Creează excepții custom

class ConfigException extends RuntimeException {
    public ConfigException(String message, Throwable cause) {
        super(message, cause);
    }
}

Prevention Tips

  • Închide resursele cu try-with-resources — se închid automat
  • Nu înghiți excepțiile — măcar loghează-le
  • Folosește excepții unchecked (RuntimeException) pentru erori de programare
  • Adaugă context mesajelor de eroare — include valorile relevante

Common Mistakes

  1. Bloc catch gol — excepția e înghițită fără nicio urmă. Măcar logheaz-o.
  2. Prinderea lui Exception sau Throwable prea larg — ascunde bug-uri reale.
  3. Returnarea null în catch — mută problema mai departe în aplicație.

FAQ

### Ce diferență e între checked și unchecked exceptions?

Checked exceptions (IOException) trebuie declarate cu throws sau prinse cu try-catch. Unchecked exceptions (NullPointerException) nu trebuie declarate.

Ce este try-with-resources?

Un mecanism care închide automat resursele care implementează AutoCloseable. Resursele se declară în paranteza lui try.

Când să creez o excepție custom?

Când ai nevoie de un tip de eroare specific domeniului tău, cu câmpuri și mesaje personalizate.

Construit de dezvoltatorii Doda Browser, DodaZIP și Durga Antivirus Pro. Instrumentele DodaTech se integrează perfect cu Java pentru productivitate și securitate sporite.

Built by the developers of DodaTech

Doda Browser, DodaZIP & Durga Antivirus Pro