En Java, comme vous le savez peut-être, les exceptions peuvent être classées en deux: une qui a besoin de la throws
clause ou doit être gérée si vous n'en spécifiez pas une et une autre qui n'en a pas. Maintenant, voyez la figure suivante:
En Java, vous pouvez lancer tout ce qui étend la Throwable
classe. Cependant, vous n'avez pas besoin de spécifier une throws
clause pour toutes les classes. Plus précisément, les classes qui sont soit un Error
ou RuntimeException
ou l' une des sous - classes de ces deux. Dans votre cas, ce Exception
n'est pas une sous-classe d'un Error
ou RuntimeException
. Il s'agit donc d'une exception vérifiée et doit être spécifiée dans la throws
clause, si vous ne gérez pas cette exception particulière. C'est pourquoi vous aviez besoin de la throws
clause.
À partir du didacticiel Java :
Une exception est un événement, qui se produit pendant l'exécution d'un programme, qui perturbe le flux normal des instructions du programme.
Maintenant, comme vous le savez, les exceptions sont classées en deux: cochées et non cochées. Pourquoi ces classifications?
Exception vérifiée: ils sont utilisés pour représenter les problèmes qui peuvent être récupérés lors de l'exécution du programme. Ils ne sont généralement pas la faute du programmeur. Par exemple, un fichier spécifié par l'utilisateur n'est pas lisible, ou aucune connexion réseau disponible, etc., Dans tous ces cas, notre programme n'a pas besoin de quitter, à la place il peut prendre des actions comme alerter l'utilisateur, ou entrer dans une solution de secours mécanisme (comme le travail hors ligne lorsque le réseau n'est pas disponible), etc.
Exceptions non vérifiées: elles peuvent à nouveau être divisées en deux: les erreurs et les exceptions d'exécution. L'une des raisons pour lesquelles ils ne sont pas cochés est qu'ils sont nombreux et que leur traitement tous encombrera notre programme et réduira sa clarté. L'autre raison est:
Exceptions d'exécution: elles surviennent généralement en raison d'une erreur du programmeur. Par exemple, si une ArithmeticException
division par zéro se produit ou une ArrayIndexOutOfBoundsException
se produit, c'est parce que nous ne sommes pas assez prudents dans notre codage. Ils se produisent généralement à cause d'erreurs dans la logique de notre programme. Donc, ils doivent être effacés avant que notre programme entre en mode production. Ils ne sont pas contrôlés dans le sens où notre programme doit échouer lorsqu'il se produit, afin que nous, les programmeurs, puissions le résoudre au moment du développement et du test lui-même.
Erreurs: les erreurs sont des situations dont le programme ne peut généralement pas récupérer. Par exemple, si a StackOverflowError
se produit, notre programme ne peut pas faire grand-chose, comme augmenter la taille de la pile d'appels de fonctions du programme. Ou si un OutOfMemoryError
problème survient, nous ne pouvons pas faire grand-chose pour augmenter la quantité de RAM disponible pour notre programme. Dans de tels cas, il est préférable de quitter le programme. C'est pourquoi ils ne sont pas contrôlés.
Pour des informations détaillées, voir: