Qu'est-ce que la classe Throwable ? La classe Throwable est la super classe de toutes les erreurs ou exceptions du langage Java. C'est une classe commune qui intègre toutes les exceptions. Sa fonction est d'extraire les informations d'erreur stockées dans la pile.
La classe Error est une sous-classe de la classe Throwable, comprenant les exceptions système, les exceptions de machine virtuelle et d'autres problèmes qui ne peuvent pas être évités par les utilisateurs.
La classe Exception est également une sous-classe de la classe Throwable. C'est une exception qui peut être gérée par le programme lui-même. Elle est divisée en exceptions d'exécution (cochées) et exceptions non-exécutables (non cochées). Les exceptions d'exécution peuvent ou non être gérées ; les exceptions non liées à l'exécution doivent être gérées.
Les exceptions d'exécution sont toutes les exceptions de la classe RuntimeException et de ses sous-classes, telles que NullPointerException, IndexOutOfBoundsException, etc. Ces exceptions ne sont pas cochées et peuvent être capturées ou non traitées dans le programme. Ces exceptions sont généralement causées par des erreurs logiques du programme, et le programme doit essayer d'éviter l'apparition de telles exceptions d'un point de vue logique.
Lorsqu'une RuntimeException se produit, nous n'avons pas besoin de la gérer et la machine virtuelle prend généralement le relais.
Après qu'une exception d'exécution se soit produite, si l'exception n'est pas interceptée et traitée (c'est-à-dire qu'il n'y a pas d'interception), le système lèvera l'exception jusqu'à la couche supérieure. Si elle est multithread, elle sera levée par. Thread.run(). S'il est monothread, il sera lancé par Thread.run(). Après le lancement, s'il s'agit d'un thread, le thread se fermera. Si l'exception est levée par le programme principal, alors le programme entier se terminera. Les exceptions d'exécution sont des sous-classes de la classe Exception et présentent également les caractéristiques des exceptions générales, c'est-à-dire qu'elles peuvent être gérées par des blocs catch. C'est juste que souvent nous ne le gérons pas. C'est-à-dire que si vous ne gérez pas les exceptions d'exécution, alors après qu'une exception d'exécution se produit, soit le thread se terminera, soit le programme principal se terminera.
Si vous ne souhaitez pas terminer, vous devez intercepter toutes les exceptions d'exécution et ne jamais laisser ce thread de traitement se terminer. Si des données anormales apparaissent dans la file d'attente, le traitement normal doit consister à supprimer les données anormales, puis à enregistrer le journal. L'existence de données anormales ne devrait pas affecter le traitement ultérieur des données normales.
Les exceptions non-exécutables sont des exceptions autres que RuntimeException, et elles appartiennent toutes à la classe Exception et à ses sous-classes. Par exemple : IOException, SQLException, etc. et exceptions définies par l'utilisateur. Pour ce genre d'exception, le compilateur Java nous oblige à intercepter et gérer ces exceptions, sinon le programme ne sera pas compilé. Par conséquent, face à ce type d’exception, que cela nous plaise ou non, nous devons écrire beaucoup de blocs catch pour gérer d’éventuelles exceptions.