Différences entre Runtime / Checked / Unchecked / Error / Exception
Quelles sont les exceptions d'Exécution et quelles sont Coché/Décoché des Exceptions et de la différence entre l'Erreur/Exception.Pourquoi ces nombreux types? Au lieu de Java peut-il suffit de suivre un design simple(juste try/catch de tous les types) pour gérer une situation anormale dans un programme?
source d'informationauteur JavaUser
Vous devez vous connecter pour publier un commentaire.
Throwable est dans le haut de toutes les exceptions.
Sous Throwable vous avez des exceptions et des Erreurs.
En dessous d'Exception, vous avez RuntimeException.
Java dispose de deux types d'exceptions - activée et désactivée. Checked exceptions sont appliquées par le compilateur (vous devez les déclarer dans les lancers de la clause et les attraper par la suite). Décoché les exceptions ne sont pas appliquées pour la capture ou la déclaration en jette clause.
(Partie controversée de la réponse)
Throwable, de façon à ce qu'il y a un parent pour tous les types d'exception. Vous ne devriez jamais vous déclarer que vous jetez à Lancer et de ne jamais l'attraper (sauf si vous avez vraiment vraiment vraiment savoir ce que vous faites).
D'erreur pour indiquer des problèmes avec l'environnement d'exécution, les choses que votre programme ne peut probablement pas récupérer, comme un mal formaté fichier de la classe ou de la machine virtuelle en cours d'exécution hors de la mémoire. Vous ne devriez pas attraper une Erreur, sauf si vous savez vraiment ce que vous faites.
Exception existe à la racine de tous les non-programmeur erreurs (voir RuntimeException pour "l'exception"), tel qu'un fichier ne peut pas être créé car le disque est plein. Vous ne devez pas jeter, lancer ou attraper une Exception. Si vous avez à les attraper Exception assurez-vous que vous savez ce que vous faites.
RuntimeException existe pour indiquer tous les programmeur d'erreur, comme aller au delà de la fin d'un tableau ou d'appel d'une méthode sur un objet null. Ce sont des choses que vous devez corriger, de sorte qu'ils ne jetez pas exception à la règle indiquer que vous, le programmeur, vissé le code. Encore une fois, vous ne devriez pas prendre ces sauf si vous savez ce que vous faites.
Depuis que je suis un nouveau développeur Java, j'ai également rencontré des difficultés pour distinguer et de traiter avec différents types d'exceptions. C'est pourquoi j'ai fait une petite note sur ce sujet, et à chaque fois que je m'embrouille je aller à travers elle. Ici, il est avec l'image de la
Throwable
hiérarchie de classe:[image courtoisie de JavaTpoint].
Il y a trois classes clés à retenir ici:
Throwable
Exception
etError
. Parmi ces classesException
peut être divisé en deux types: "Checked Exception" et "Unchecked Exception".Vérifié Exception:
Throwable
saufRuntimeException
etError
.try/catch
ou indiquer dans la signature de la fonction qu'ilthrows
eux et nous obliger à traiter avec eux en les appelant.IOException
SQLException
etc.Décoché Exception:
RuntimeException
sont connus comme non des exceptions.ArithmeticException
,NullPointerException
ArrayIndexOutOfBoundsException
etc.ArithmeticException
qui peuvent être évités par une simple vérification sur le diviseur. De même, nous pouvons éviterNullPointerException
en cochant simplement les références:if (object != null)
ou même en utilisant de meilleures techniques.Erreur:
Error
se réfère à une irrémédiable de la situation qui n'est pas géré par untry/catch
.OutOfMemoryError
VirtualMachineError
AssertionError
etc.Pourquoi ce nombre de types?
En plus de Stephen C's réponse que je veux dire:
la gestion des exceptions est une opération relativement coûteuse en Java. Nous ne devrions pas mettre tous les situation exceptionnelle dans un
try/catch
bloc. Utilisation Excessive de latry/catch
s peut nuire aux performances du programme.En conclusion,
Exception
s doit être manipulé par programmation chaque fois que possible. D'autre part, nous ne pouvons pas traiterError
s, de sorte que ceux-ci pourraient être quelques raisons logiques pourquoi il existe de nombreux types d'exceptions.TofuBeer réponse explique clairement ce que sont les classes d'exception veux dire.
Pourquoi? Parce qu'ils sont nécessaires! Sans ces 4 classes, la gestion des exceptions par grande catégorie d'seraient impraticables.
Error
classe?Exception
classe?RuntimeException
classe?Des Exceptions d'exécution vous fournir la souplesse nécessaire pour éviter la capture, la déclaration d'exceptions.