Duplicata possible :
Différences entre les exceptions et les erreurs
Comment faire la différence entre les erreurs et les exceptions en Java ?
Duplicata possible :
Différences entre les exceptions et les erreurs
Comment faire la différence entre les erreurs et les exceptions en Java ?
Une erreur "indique des problèmes sérieux qu'une application raisonnable ne devrait ne devrait pas essayer d'attraper".
tandis que
Une exception "indique les conditions qu'une application raisonnable pourrait vouloir attraper".
Erreur avec RuntimeException
et leurs sous-classes sont unchecked
les exceptions. Toutes les autres classes d'exceptions sont checked
exceptions.
Vérifié Les exceptions sont généralement celles dont un programme peut se remettre et il peut être judicieux de se remettre de ces exceptions de manière programmatique. Voici quelques exemples FileNotFoundException
, ParseException
etc. Le programmeur est censé vérifier ces exceptions à l'aide du bloc try-catch ou les renvoyer à l'appelant.
D'autre part, nous avons non vérifié exceptions. Ce sont ces exceptions qui pourraient ne pas se produire si tout est en ordre, mais qui se produisent. Voici quelques exemples ArrayIndexOutOfBoundException
, ClassCastException
etc. De nombreuses applications utiliseront try-catch
o throws
clause pour RuntimeExceptions
et leurs sous-classes, mais du point de vue du langage, il n'est pas nécessaire de le faire. Notez que la récupération d'un RuntimeException
est généralement possible, mais les personnes qui ont conçu la classe/exception ont estimé qu'il n'était pas nécessaire que le programmeur final vérifie la présence de telles exceptions.
Erreurs sont également des exceptions non vérifiées et le programmeur n'est pas tenu d'en faire quoi que ce soit. En fait, c'est une mauvaise idée d'utiliser une exception try-catch
clause pour les erreurs. Le plus souvent, la récupération d'une erreur n'est pas possible et le programme doit être autorisé à se terminer. Par exemple OutOfMemoryError
, StackOverflowError
etc.
Notez que même si les erreurs sont des exceptions non vérifiées, nous ne devrions pas essayer de les traiter, mais il est possible de traiter les exceptions suivantes RuntimeExceptions
(également les exceptions non vérifiées) dans le code. Les exceptions vérifiées doivent être traitées par le code.
Error
y Exception
les deux s'étendent Throwable
mais surtout Error
est lancée par la JVM dans un scénario qui est fatal et il n'y a aucun moyen pour le programme d'application de récupérer de cette erreur. Par exemple OutOfMemoryError
.
Bien que même l'application puisse soulever un Error
mais ce n'est pas une bonne pratique. Les applications devraient plutôt utiliser des exceptions vérifiées pour les conditions récupérables et des exceptions d'exécution pour les erreurs de programmation.
L'erreur est une chose que, la plupart du temps, vous ne pouvez pas gérer.
L'exception avait pour but de vous donner l'occasion de faire quelque chose, comme essayer autre chose ou écrire dans le journal.
try{
//connect to database 1
}
catch(DatabaseConnctionException err){
//connect to database 2
//write the err to log
}
En général, une erreur est une chose que personne ne peut contrôler ou deviner quand elle se produit, alors qu'une exception peut être devinée et traitée. En Java, les exceptions et les erreurs sont des sous-classes de Throwable, qui sont différenciées en fonction du contrôle du programme. Une erreur telle que l'erreur OutOfMemory, qu'aucun programmeur ne peut deviner et gérer, dépend de façon dynamique de l'architecture, du système d'exploitation et de la configuration du serveur, tandis qu'une exception, que le programmeur peut gérer, permet d'éviter les erreurs de comportement de l'application.
Le lien ci-dessous indique quand utiliser les erreurs et les exceptions... http://download.oracle.com/javase/tutorial/essential/exceptions/runtime.html
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.