Table des matières

Premiers pas avec les exceptions

Traiter une exception

La classe principale Main.java définit un traitement spécifique si une exception est levée.

package fr.ubx;

public class Main {

    public static void main(String[] args) {
        System.out.println("Simple application");
        var test = new TestMe();
        try {
            test.mayFail(1);
            test.mayFail(-1);
            test.mayFail(2);

        } catch (MyException e) {
            System.err.println("Huston, we have a problem!!!!");
            System.err.println("Invalid value for x : " + e.getValue());
        }
    }
}

Lever une exception en cas de problème

La classe TestMe.java lève une exception dans la méthode mayFail

package fr.ubx;

public class TestMe {
    public void mayFail(int x) throws MyException {
        if (x < 0) {
            throw new MyException(x);
        }
        System.out.println("x = " + x);
    }
}

Définir l’exception maison

La classe MyException définit une exception paramétrée par une valeur entière. Le champ serialVersionUID est recommandé car les exceptions sont des objets sérialisable, c’est à dire qu’ils doivent pouvoir être transformés en chaîne de caractères pour être échangés par exemple à travers le réseau.

package fr.ubx;

public class MyException extends Exception {
    private static final long serialVersionUID = 1L;

    public MyException(int value) {
        this.value = value;
    }

    private int value;

    public int getValue() {
        return value;
    }
}