137 votes

Quelle est la différence entre les erreurs et les exceptions ?

Duplicata possible :
Différences entre les exceptions et les erreurs

Comment faire la différence entre les erreurs et les exceptions en Java ?

197voto

Nirmal- thInk beYond Points 4907

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.

18voto

Jugal Shah Points 1367

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.

12voto

fatnjazzy Points 3111

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
}

6voto

Nika Gamkrelidze Points 320

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.

0voto

Abhilash Points 189

Le lien ci-dessous indique quand utiliser les erreurs et les exceptions... http://download.oracle.com/javase/tutorial/essential/exceptions/runtime.html

Prograide.com

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.

Powered by:

X