En Java, toutes les exceptions ont un ancêtre commun, jetable (jetable). Throwable Spécifie le point commun de tout problème qui peut être transmis via des applications Java dans le code par des mécanismes de propagation des exceptions.
Throwable a deux sous-classes importantes: l'exception et l'erreur. Les deux sont des sous-classes importantes pour la manipulation des exceptions Java, et chacune contient un grand nombre de sous-classes.
①..Exception est un problème prévisible et récupérable possible dans l'application. Généralement, la plupart des anomalies indiquent des problèmes modérés à légers. Les exceptions sont généralement générées dans des environnements spécifiques et se produisent généralement dans des méthodes et des opérations spécifiques du code. Dans la classe Echoinput, une IOException peut se produire lorsque vous essayez d'appeler la méthode Readline.
La classe d'exception a une sous-classe importante, RuntimeException. La classe RuntimeException et ses sous-classes représentent une erreur soulevée par les "opérations JVM communes". Par exemple, si vous essayez d'utiliser une référence d'objet nulle, un diviseur zéro ou un tableau hors limites, une exception d'exécution (nullpointerException, arithmeticexception) et ArrayIndexoutofboundException sont respectivement soulevées.
②..Error indique un problème grave dans l'exécution de l'application. La plupart des erreurs ne sont pas liées aux actions effectuées par l'écrivain de code, mais représentent des problèmes avec JVM (Java Virtual Machine) lorsque le code est exécuté. Par exemple, lorsque le JVM n'a plus les ressources de mémoire nécessaires pour poursuivre l'opération, une overofMemoryError apparaîtra.
La division entre vérifier les exceptions et ne pas vérifier les exceptions
Les exceptions en Java sont divisées en deux catégories:
1. exception colorée (exception non runtime)
2. exception à suspension (exception d'exécution)
Exception d'exécution
La classe RuntimeException est une sous-classe de la classe d'exception. Il s'appelle une exception d'exécution. Toutes les exceptions d'exécution dans Java seront héritées directement ou indirectement de la classe RuntimeException.
Toutes les exceptions de Java qui héritent de l'exception mais pas de RuntimeException sont des exceptions non-runtime.
Un essai peut être suivi de plusieurs captures, mais peu importe le nombre, au plus, un bloc de capture sera exécuté.
Pour les exceptions non-runtime, ils doivent être traités, sinon ils ne peuvent pas être compilés.
Il y a deux façons de s'occuper de cela:
1. Utilisez Try..catch..finalement pour capturer;
2. Écrivez un type d'exception lance après la déclaration de méthode qui génère l'exception, telles que les lancers, jetez l'exception à la couche extérieure.
Pour les exceptions d'exécution, ils peuvent être traités ou non. Il est recommandé de ne pas gérer les exceptions d'exécution.
Extension: la différence entre l'erreur et l'exception (erreur vs exception)
1) .java.lang.error: une sous-classe de jetable, utilisée pour marquer les erreurs critiques. Une application raisonnable ne doit pas aller pour essayer / capter les erreurs. La plupart des erreurs sont anormales et ne devraient pas du tout se produire.
java.lang.exception: une sous-classe de jetable, utilisée pour indiquer un programme raisonnable à attraper. Autrement dit, c'est juste une condition de fonctionnement du programme, pas une erreur grave, et les programmes d'utilisateurs sont encouragés à l'attraper.
2). Erreur et RuntimeException et leurs sous-classes sont des exceptions non contrôlées, tandis que toutes les autres classes d'exception sont des exceptions vérifiées.
Exceptions vérifiées: est généralement lancé d'un programme récupérable et est le mieux en mesure de se remettre de ces exceptions à l'aide du programme. Par exemple, filenotfoundException, parseException, etc. L'exception vérifiée se produit à l'étape de compilation, et vous devez utiliser Try ... Catch (ou lance) ou la compilation ne sera pas transmise.
Exceptions non contrôlées: généralement une exception qui n'aurait pas dû se produire si tout est normal, mais cela se produit. Il se produit pendant l'exécution et a de l'incertitude, principalement causée par des problèmes logiques dans le programme. Par exemple, ArrayIndexoutOfBoundException, ClassCastException, etc. Du point de vue de la langue elle-même, les programmes ne devraient pas utiliser des exceptions comme Catch. Bien qu'ils puissent attraper et se remettre d'exceptions telles que RuntimeException, les programmeurs terminaux ne sont pas encouragés à le faire car il n'est pas nécessaire de le faire. Étant donné que ce type d'erreur est un bogue lui-même et doit être corrigé, le programme doit être arrêté immédiatement lorsque de telles erreurs se produisent. Par conséquent, face aux erreurs et aux exceptions non contrôlées, le programme doit être automatiquement résilié. Les programmeurs ne doivent pas faire des choses telles que Try / Catch, mais doivent trouver la raison et modifier la logique du code.
RuntimeException: le système RuntimeException comprend une conversion de type mauvais, un accès hors limites de la baisse, tente d'accéder aux pointeurs nuls, etc.
Le principe de la gestion de RuntimeException est: si un runtimeException se produit, il doit s'agir d'une erreur du programmeur. Par exemple, les exceptions d'accès hors limites de la baisse peuvent être évitées en vérifiant les indices de tableau et les limites des tableaux. D'autres exceptions vérifiées (IOException, etc.) sont généralement des erreurs externes, comme essayer de lire les données de la fin du fichier, etc. Ce n'est pas une erreur du programme lui-même, mais une erreur externe qui se produit dans l'environnement d'application.
L'article ci-dessus la classe Java_Exception (introduction à la différence entre les erreurs et les exceptions) est tout le contenu que je partage avec vous. J'espère que vous pourrez vous faire référence et j'espère que vous pourrez soutenir Wulin.com plus.