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.
Étude recommandée : "Tutoriel d'apprentissage 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.
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.
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 :
Scénario ClassNotFoundException :
public static void main(String[] args) { try { Class.forName("test"); } catch (ClassNotFoundException e) { e.printStackTrace(); }}
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 Enfinpublic void test() throws Exception{ throw new Exception();};
try{ //代码区}catch(Exception e){ log.error("error: {}", e);}finally{ //最后必须执行的部分}
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.
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!