Les types d'exception en Java ?

Les types d'exception en Java ? - Java - Programmation

Marsh Posté le 17-09-2007 à 18:28:08    

Bonjour,
 
J'aimerai avoir un peu plus de détail sur les types d'Exception en Java.  
 
Existe-il en java des exceptions qui ne sont pas throwable ou que l'on ne peut pas catcher ?
 
Merci d'avance pour vos réponses.

Reply

Marsh Posté le 17-09-2007 à 18:28:08   

Reply

Marsh Posté le 17-09-2007 à 18:51:12    

Non car de base, la classe Exception dérive de Throwable (extends Throwable), par contre tu peux avoir un Throwable qui ne soit pas une exception, du coup je vois pas ce qui se passe si tu la catche pas et tu as aussi les exceptions dérivées de RuntimeException que tu n'est pas obligé de déclarer dans ta fonction (pas besoin de spécifier "throws RuntimeException" ). Il en va de même pour les classes dérivées de Error (qui dérive elle-même aussi de Throwable). Il est recommendé de ne pas catcher les Error qui sont des comportements anormaux alors qu'une exception est souvent un phénomène normal qui permet d'éviter de renvoyer un indicateur de réussite d'une opération (surtout quand tu veux uniquement un String) pour utiliser des structures de contôle


---------------
The Rom's, à votre service
Reply

Marsh Posté le 17-09-2007 à 19:02:19    

Merci pour ta réponse complète.
 
Je suppose par ailleurs que quelque soit l'exception soulevée le fait de ne pas la catcher implique un plantage du programme ?

Reply

Marsh Posté le 17-09-2007 à 19:26:28    

Une exception non catchée entraîne une erreur de compilation sauf pour les RuntimeException ou si elles sont déclarées. A l'exception, une RuntimeException non catchée (seule possibilité) implique un plantage
Essaie ça sous diverses formes :

Code :
  1. public class App {
  2. public static void main(String args[]) {
  3.  try { App.excep(); }
  4.  catch (Exception e) {
  5.   throw new RuntimeException("exception !", e);
  6.   //System.out.println("after" ); // unreachable statement
  7.  }
  8. }
  9. public static void excep() throws Exception {
  10.  throw new Exception("excep" );
  11. }
  12. }


---------------
The Rom's, à votre service
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed