Une exception se produit lorsqu'une situation anormale (par exemple, une erreur ou un problème ) se produit qu'une méthode est incapable de gérer . La méthode sort par "lancer" une exception , en communiquant à la fonction appelante que la méthode est terminée anormalement et repassant informations sur les conditions de la situation . Cette information est encapsulé dans l'objet exception renversée à la fonction appelante . Basic Exceptions
Java propose trois types d'exceptions: . Exceptions vérifiées , les erreurs et les exceptions d'exécution
exceptions contrôlées sont jetés pour les problèmes attendus qui peuvent raisonnablement être traitées comme une demande pour un fichier inexistant . Les exceptions contrôlées doivent être attrapés et manipulés soit par la fonction d'appel ou jetés à une fonction plus noble . Cette exigence est considéré comme le "Catch ou Spécifier exigence . " Tous les exceptions vérifiées sont dérivées de la classe Exception .
Erreurs sont levée lorsqu'une erreur grave externe à l'application se produit qui ne peut être raisonnablement assurée , comme sur la mémoire et la pile des erreurs de débordement. Toutes les erreurs sont tirées de l' erreur de la classe.
Exceptions d'exécution sont jetés quand une erreur grave dans l'application se produit qui ne peut être raisonnablement traitées , telles que les arguments et les paramètres illégales. Tous les exceptions d'exécution sont dérivées de la classe RuntimeException .
Erreurs et exceptions d'exécution sont les deux exceptions non vérifiées . Exceptions non vérifiées ne sont pas soumis à l'obligation Catch ou Spécifier car la récupération gracieuse de ces types d' exceptions n'est pas prévu.
Classes Exception , Error et RuntimeException sont tous issus de la classe Throwable . De Throwable , ces classes héritent des fonctions utiles pour signaler les erreurs et le débogage . Par exemple, getMessage renvoie le message d' erreur lisible associé à l'exception , et printStackTrace affiche des informations détaillées d'un ruisseau ou writer spécifié . Vous pouvez créer vos propres exceptions spécialisés en héritant de Exception , RuntimeException ou leurs sous-classes.
Spécialité Exceptions
Java offre de nombreuses classes d'exception issus des classes de base . Exceptions spécialisées peuvent offrir des fonctions supplémentaires pour récupérer des informations détaillées et spécifiques à la situation. Par exemple , les fonctions de connectivité de base de données Java peuvent jeter une SQLException . Cette exception spécialisé possède des fonctions pour récupérer des informations sur l'état SQL et fournisseur code d'erreur spécifique lié à l'exception. Prendre et gérer les exceptions spécifiques vous permet d'accéder à une mine d'informations supplémentaires non disponibles si vous ne intercepter et de gérer les exceptions génériques parent- Class of
la gestion des exceptions : . Essayez , catch, finally
Utiliser try, catch , et enfin blocs d'attraper et de gérer les exceptions . Placez votre code pouvant lever une exception dans le bloc try. Fournir un bloc catch pour gérer chaque exception possible , avec des instructions pour gérer l'exception fondée sur le type d'exception et les informations à l'exception offre . Manipulation de l' exception peut s'agir d'alerter l' utilisateur de l'erreur , demandant l'entrée d'utilisateur correct , récupérant automatiquement à partir de l'erreur ou lancer une exception à un niveau supérieur. Code dans le bloc finally s'exécute toujours lorsque le bloc try est quitté, si elle s'arrête normalement ou si une exception a été capturé .
Dans cet exemple simple, l'application tente d'ouvrir un fichier et de les traiter . Si une exception est interceptée , certaines informations d'exception est imprimé , et l' exécution se poursuit . Enfin, l'application nettoie en fermant le flux de fichiers si nécessaire
FileReader fr = null; . Try { fr = new FileReader ( " monfichier.txt "); ... (code à lire et à traiter le fichier ) ... } catch ( FileNotFoundException ex) { System.out.println ( ex.getMessage ()); } catch (IOException ex) { System.out.println ( ex.getMessage () ) ; } finally {if ( fr = null) fr.close () ;}
levée des exceptions
de lever des exceptions à partir d'une fonction , spécifiez cette aide de l' clause throws dans la déclaration de fonction , en fournissant une liste d'exceptions qui peuvent être levées . Par exemple:
getData void ( ) throws IOException , FileNotFoundException {
Une exception est levée en utilisant une instruction " jet " . Une exception interceptée ou créé peut être levée. Par exemple:
getData void ( ) throws SomeOtherException , FileNotFoundException { FileReader fr = null; try { fr = new FileReader ( " monfichier.txt "); ... (code à lire et à traiter le fichier ) ... } catch ( FileNotFoundException ex) {throw ex ; } catch (IOException ex) { throw new SomeOtherException (ex) ;} finally { if (! fr = null) fr.close ( );}}