Accéder au contenu principal
Documents
Tableaux JavaProgrammation orientée objet en JavaTraitement des fichiers en JavaIntroduction To JavaLes bases du langage JavaMots-clés Java

mot-clé throw en Java

Le mot-clé throw en Java est utilisé pour lancer explicitement une exception à partir d'une méthode ou d'un bloc de code. Il s'agit d'un élément essentiel du mécanisme de traitement des exceptions de Java, qui permet aux développeurs de créer et de gérer des conditions d'erreur de manière contrôlée.

Utilisation

Le mot-clé throw est généralement utilisé pour lancer des exceptions vérifiées ou non vérifiées. Lorsqu'une exception est levée, le déroulement normal du programme est interrompu et le contrôle est transféré au bloc enveloppant le plus proche try-catch qui peut gérer l'exception.

Syntax

throw new ExceptionType("Error message");
  • ExceptionType: Le type d'exception à lever (par exemple, ArithmeticException, NullPointerException).
  • "Error message": Un message sous forme de chaîne de caractères fournissant des détails sur l'exception.

Exemples

Exemple 1 : Lancer une exception vérifiée

public class ThrowExample {
    public static void main(String[] args) {
        try {
            checkAge(15);
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }

    static void checkAge(int age) throws Exception {
        if (age < 18) {
            throw new Exception("Age must be 18 or older.");
        }
    }
}

Dans cet exemple, la méthode checkAge génère une erreur Exception si l'âge fourni est inférieur à 18 ans. La méthode main appelle checkAge à l'intérieur d'un bloc try et capture l'exception, en imprimant le message d'erreur.

Exemple 2 : Lancer une exception non vérifiée

public class ThrowExample {
    public static void main(String[] args) {
        try {
            divide(10, 0);
        } catch (ArithmeticException e) {
            System.out.println(e.getMessage());
        }
    }

    static void divide(int a, int b) {
        if (b == 0) {
            throw new ArithmeticException("Division by zero is not allowed.");
        }
        System.out.println(a / b);
    }
}

Ici, la méthode divide lance un ArithmeticException si le diviseur est zéro. La méthode main capture l'exception et imprime le message d'erreur.

Exemple 3 : Exception personnalisée

class CustomException extends Exception {
    public CustomException(String message) {
        super(message);
    }
}

public class ThrowExample {
    public static void main(String[] args) {
        try {
            validate(0);
        } catch (CustomException e) {
            System.out.println(e.getMessage());
        }
    }

    static void validate(int number) throws CustomException {
        if (number <= 0) {
            throw new CustomException("Number must be greater than zero.");
        }
    }
}

Cet exemple montre comment lancer une exception personnalisée. La méthode validate lance un CustomException si le nombre est inférieur ou égal à zéro, et la méthode main l'attrape et le traite.

Conseils et bonnes pratiques

  • Utilisez des messages significatifs: Fournissez toujours des messages significatifs et descriptifs lorsque vous lancez des exceptions afin de faciliter le débogage.
    throw new IllegalArgumentException("Parameter 'x' cannot be negative.");
  • Vérifié vs. Exceptions non vérifiées: Utilisez des exceptions contrôlées pour les conditions récupérables et des exceptions non contrôlées (exceptions d'exécution) pour les erreurs de programmation.
  • Exceptions personnalisées: Créez des exceptions personnalisées pour représenter des conditions d'erreur spécifiques dans votre application. Cela rend votre code plus lisible et plus facile à maintenir.
  • Évitez la surutilisation: N'abusez pas des exceptions pour le flux de contrôle. Ils doivent être utilisés dans des conditions exceptionnelles, et non pour des contrôles conditionnels réguliers.
  • Exceptions relatives aux documents: Documentez toujours les exceptions qu'une méthode peut lancer à l'aide de la balise Javadoc @throws.
    /**
     * @throws IllegalArgumentException if the parameter is invalid
     */
    public void someMethod(int param) {
        if (param < 0) {
            throw new IllegalArgumentException("Parameter cannot be negative.");
        }
    }

Apprendre l'essentiel de Java

Développez vos compétences en Java à partir de la base et maîtrisez les concepts de programmation.
Commencez à apprendre gratuitement