Maison  >  Article  >  Java  >  Maîtriser parfaitement les principes et applications du mécanisme de gestion des exceptions Java

Maîtriser parfaitement les principes et applications du mécanisme de gestion des exceptions Java

WBOY
WBOYavant
2022-03-29 12:03:541686parcourir

Cet article vous apporte des connaissances pertinentes sur java Il présente principalement les principes et les problèmes liés à l'application du mécanisme de gestion des exceptions, y compris les exceptions et les erreurs, la syntaxe trycatch, la séquence d'exécution trycatch, etc. . Utile.

Maîtriser parfaitement les principes et applications du mécanisme de gestion des exceptions Java

Étude recommandée : "Tutoriel d'apprentissage Java"

1. Introduction aux exceptions Java

Tout le monde est peut-être familier avec trycatch, et ils maîtrisent tous très bien son utilisation.

Lorsqu'une erreur se produit pendant l'exécution du programme, une exception sera levée. Il est toujours préférable de lancer une exception plutôt que de terminer le programme.

Vous pouvez également effectuer des opérations trycatch lorsque l'on sait qu'une erreur est sur le point de se produire, et effectuer certaines opérations uniques lorsque des exceptions se produisent.

1. Exception et Error

Exception et Error héritent toutes deux de la classe Throwable. En Java, seules les instances du type Throwable peuvent être lancées ou interceptées.

L'exception est une exception prévisible. Cette exception peut être obtenue et traitée en dehors de l'entreprise.

L'erreur est une exception imprévisible. Lorsqu'une erreur se produit, la JVM sera directement incapable de la gérer.

L'exception est divisée en exceptions vérifiées et exceptions non vérifiées.

Les exceptions vérifiées doivent être interceptées à l'aide de try catch lors de l'écriture du code (par exemple : IOException).

Exceptions non vérifiées, le compilateur ne saura pas si cela se produira une fois, comme une exception de pointeur nul. Ce type d'exception peut être évité grâce à la spécification lors de l'écriture ou de l'utilisation du code. Par exemple, la fonction findbugs de sts peut détecter les exceptions de pointeur nul dans le code.

2. Quelle est la différence entre NoClassDefFoundError et ClassNotFoundException ?

NoClassDefFoundError est une erreur générée par la JVM lorsqu'elle ne peut pas trouver la classe correspondante lors du chargement d'une classe via classpath.

ClassNotFoundException : si cette exception peut se produire lors de la compilation, elle doit être levée lors de la compilation.

Scénarios d'occurrence NoClassDefFoundError :

  1. La classe ou le jar dont dépend la classe n'existe pas
  2. Le fichier de classe existe, mais dans un domaine différent Bref, il est introuvable

Scénario ClassNotFoundException :

  1. . Lors de l'appel de la méthode forName de la classe, la classe spécifiée est introuvable
  2. Lors de la méthode findSystemClass() dans ClassLoader, la classe spécifiée est introuvable
public static void main(String[] args) {
    try {
        Class.forName("test");
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    }}

2. syntaxe trycatch

1. try Une instruction entoure une section de code entre accolades qui peuvent lever une ou plusieurs exceptions.

2. Instruction Catch

Les paramètres de l'instruction catch sont similaires à la déclaration d'une méthode, comprenant un type d'exception et un objet d'exception. Le type d'exception doit être une sous-classe de la classe Throwable, qui spécifie le type d'exception traité par l'instruction catch. L'objet d'exception est généré et capturé par le système d'exécution dans le bloc de code spécifié par try. object, où les méthodes Object peuvent être appelées.

Vous pouvez avoir plusieurs instructions catch pour gérer respectivement différents types d'exceptions. Le système d'exécution Java détecte le type d'exception géré par chaque instruction catch de haut en bas jusqu'à ce qu'une instruction catch avec un type correspondant soit trouvée. Ici, la correspondance de type signifie que le type d'exception géré par catch est exactement le même que le type de l'objet d'exception généré ou de sa classe parent. Par conséquent, l'ordre des instructions catch doit être du spécial au général.

3. Instruction Enfin

Qu'une exception soit levée ou non lors de l'essai, le code de l'instruction finale sera exécuté. La fonction la plus importante du bloc d'instructions final devrait être de libérer les ressources demandées.

4. throws instruction

throws apparaît toujours après l'en-tête de la fonction pour indiquer les exceptions qui peuvent être levées par la méthode.

5. L'instruction throw

est similaire à throws, mais l'emplacement est différent. throw est placé dans le module catch Le programme se terminera immédiatement après l'exécution de throw, sauf. enfin.

6. Lancer des exceptions

public void test() throws Exception{
    throw new Exception();};

7. Capturer des exceptions

try{
    //代码区}catch(Exception e){
    log.error("error: {}", e);}finally{
    //最后必须执行的部分}
3. La séquence d'exécution de trycatch

Démarrer l'exécution à partir de la première ligne de code dans try Lorsque le code qui provoque une exception est exécuté, la JVM créera un objet Exception.

Déterminez si catch peut capturer l'objet d'exception créé par jvm.


S'il est capturé, il passera au bloc de code catch. Il ne terminera pas le programme et poursuivra la logique du code dans catch ; , il imprimera directement les informations d'exception et terminera le programme.

S'il n'y a pas d'exception dans try, le code dans try sera exécuté, ignorera le catch et entrera dans le bloc de code final.

4. Principes de gestion des exceptions

Si une exception qui doit être détectée est levée dans une méthode, elle doit être déclarée dans la méthode, sinon elle doit être interceptée avec try-catch dans la méthode, sinon la compilation échouera.
Si la fonction déclarant une exception est appelée, essayez-catch ou lancez, sinon la compilation échoue.
Quand attraper et quand lancer ? Le contenu fonctionnel peut être résolu, mais il ne peut pas être résolu en utilisant catch. Utilisez throws pour indiquer à l'appelant qu'il existe un appelant pour le résoudre.
Si une fonction génère plusieurs exceptions, il doit y avoir plusieurs captures correspondantes pour un traitement ciblé lors de l'appel.

Apprentissage recommandé : "Tutoriel Java"

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer