Maison >Java >javaDidacticiel >Comment intercepter une exception en Java

Comment intercepter une exception en Java

(*-*)浩
(*-*)浩original
2019-11-28 15:22:463527parcourir

En Java, toute instruction susceptible de lever une exception peut être interceptée avec try...catch. Placez les instructions susceptibles de provoquer des exceptions dans try { ... }, puis utilisez catch pour capturer l'exception correspondante et ses sous-classes.

Comment intercepter une exception en Java

Plusieurs instructions catch

Vous pouvez utiliser plusieurs instructions catch, chaque catch capture l'exception correspondante et sa sous-classe. Une fois que la JVM a intercepté l'exception, elle fera correspondre l'instruction catch de haut en bas. Après avoir fait correspondre un certain catch, elle exécutera le bloc de code catch et ne continuera plus à correspondre. (Apprentissage recommandé : cours Java )

En termes simples : plusieurs instructions CATCH ne peuvent être exécutées. Par exemple :

public static void main(String[] args) {    try {
        process1();
        process2();
        process3();
    } catch (IOException e) {
        System.out.println(e);
    } catch (NumberFormatException e) {
        System.out.println(e);
    }
}

Lorsqu'il y a plusieurs catches, l'ordre des catches est très important : les sous-classes doivent être écrites en premier. Par exemple :

public static void main(String[] args) {
    try {
        process1();
        process2();
        process3();
    } catch (IOException e) {
        System.out.println("IO error");
    } catch (UnsupportedEncodingException e) { // 永远捕获不到
        System.out.println("Bad encoding");
    }
}

Pour le code ci-dessus, l'exception UnsupportedEncodingException ne peut jamais être interceptée car il s'agit d'une sous-classe de IOException. Lorsqu'une exception UnsupportedEncodingException est levée, elle sera interceptée et exécutée par catch (IOException e) { ... }.

Par conséquent, la bonne façon de l'écrire est de mettre la sous-classe en premier :

public static void main(String[] args) {    try {
        process1();
        process2();
        process3();
    } catch (UnsupportedEncodingException e) {
        System.out.println("Bad encoding");
    } catch (IOException e) {
        System.out.println("IO error");
    }
}

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn