Parfois je vois
try {
}catch(Throwable e) {
}
Et parfois
try {
}catch(Exception e) {
}
Quelle est la différence
Parfois je vois
try {
}catch(Throwable e) {
}
Et parfois
try {
}catch(Exception e) {
}
Quelle est la différence
Par la capture de Throwable il inclut des choses que la sous-classe d'Erreur. Vous devriez généralement pas faire, sauf peut-être au plus haut "catch all", le niveau d'un thread où vous souhaitez enregistrer ou autrement de gérer absolument tout ce qui peut aller mal. Il serait plus typique dans un cadre type d'application (par exemple un serveur d'application ou d'un framework de test) où il peut être en cours d'exécution d'un code inconnu et ne devrait pas être affecté par tout ce qui va mal avec ce code, autant que possible.
Le premier des captures de toutes les sous-classes de Throwable
(ce qui inclut Exception
et Error
), le deuxième les captures de toutes les sous-classes de Exception
.
Error
par programmation irrécupérable en aucune façon et est généralement de ne pas être pris, sauf à des fins de journalisation (qui passe par là). Exception
par programme recouvrables. Son sous-classe RuntimeException
indique une erreur de programmation et est généralement de ne pas être attrapé.
Throwable est super classe d'exception ainsi que d'erreur. Dans des cas normaux, nous devrions toujours intercepter des sous-classes d'Exception, afin que la cause racine ne soit pas perdue.
Seuls les cas spéciaux où vous voyez la possibilité de problèmes qui ne contrôlent pas votre code Java, vous devriez attraper une erreur ou un jetable. Je me souviens d'avoir attrapé Throwable pour signaler qu'une bibliothèque native n'est pas chargée.
Thowable captures, vraiment tout, même ThreadDeath qui est lancée par défaut pour arrêter un thread du désormais obsolète Fil.méthode stop (). Donc, par l'attraper, Lancer, vous pouvez être sûr que vous ne serez jamais quitter le bloc try sans passer par le bloc catch, mais vous devez être prêt à gérer également OutOfMemoryError et InternalError ou StackOverflowError.
La capture de Throwable qui est le plus utile pour le serveur externe de la boucle délégué à toutes sortes de demandes à l'extérieur de code, mais elle peut elle-même ne jamais mettre fin à la garder en vie.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.