La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

1111 Gestion des exceptions. 11-2 Objectifs À la fin de ce cours, vous serez capables de : • Expliquer les concepts de base de la gestion des exceptions.

Présentations similaires


Présentation au sujet: "1111 Gestion des exceptions. 11-2 Objectifs À la fin de ce cours, vous serez capables de : • Expliquer les concepts de base de la gestion des exceptions."— Transcription de la présentation:

1 1111 Gestion des exceptions

2 11-2 Objectifs À la fin de ce cours, vous serez capables de : • Expliquer les concepts de base de la gestion des exceptions • Ecrire le code permettant de récupérer et gérer des exceptions • Ecrire le code permettant de générer des exceptions • Créer vos propres exceptions À la fin de ce cours, vous serez capables de : • Expliquer les concepts de base de la gestion des exceptions • Ecrire le code permettant de récupérer et gérer des exceptions • Ecrire le code permettant de générer des exceptions • Créer vos propres exceptions

3 11-3 Qu'est-ce qu'une exception ? Une exception est un événement imprévu.

4 11-4 Comment Java gère-t-il les exceptions ? • Une méthode génère une exception. • Un gestionnaire récupère l'exception. • Une méthode génère une exception. • Un gestionnaire récupère l'exception. Objet d'exception OuiNon Gestionnaire pour cette exception ?

5 11-5 Avantages des exceptions Java : le code de gestion des erreurs est un code distinct • En programmation traditionnelle, la gestion des erreurs complique souvent la lecture du code. • Java distingue la gestion des erreurs imprévues des travaux principaux du programme. • Le code ainsi obtenu est plus lisible et mieux protégé contre les bogues. • En programmation traditionnelle, la gestion des erreurs complique souvent la lecture du code. • Java distingue la gestion des erreurs imprévues des travaux principaux du programme. • Le code ainsi obtenu est plus lisible et mieux protégé contre les bogues.

6 11-6 Avantages des exceptions Java : les erreurs remontent vers la pile d'appels method4 method3 method2 method1 //handle error Code d'erreur method4 method3 method2 Method1 //handle ex Exception ex Chaque méthode vérifie les erreurs et renvoie un code d'erreur à sa méthode appelante. method4 génère une exception ; method1 la récupère. Gestion traditionnelle des erreurs Exceptions Java Code d'erreur

7 11-7 Avantages des exceptions Java : les exceptions ne peuvent pas être ignorées Gestion traditionnelle des erreurs Si method3 ignore l'erreur, celle-ci ne sera jamais gérée. method4 method3 method2 method1 //handle error Code d'erreur method4 method3 method2 Method1 //handle ex Exception ex Exceptions Java L'exception doit être récupérée et gérée quelque part.

8 11-8 Exceptions vérifiées, exceptions non vérifiées et erreurs Toutes les erreurs et exceptions étendent la classe Throwable. Throwable ErrorException Erreurs non réparables Exceptions vérifiées Exceptions (d'exécution) non vérifiées RuntimeException

9 11-9 Que faire avec une exception ? • Récupérer l'exception et la gérer. • Laisser l'exception passer à la méthode appelante. • Récupérer l'exception et générer une exception différente. • Récupérer l'exception et la gérer. • Laisser l'exception passer à la méthode appelante. • Récupérer l'exception et générer une exception différente.

10 11-10 Récupération et gestion d'une exception • Insérez l'appel de méthode dans un bloc try. • Gérez chacune des exceptions dans un bloc catch. • Effectuez les derniers traitements dans un bloc finally. • Insérez l'appel de méthode dans un bloc try. • Gérez chacune des exceptions dans un bloc catch. • Effectuez les derniers traitements dans un bloc finally. try { // call the method } catch (exception1) { // handle exception1 } catch (exception2) { // handle exception2 }… finally { // any final processing }

11 11-11 Récupération d'une seule exception int qty; String s = getQtyFromForm(); try { // Might throw NumberFormatException qty = Integer.parseInt(s); } catch ( NumberFormatException e ) { // Handle the exception } // If no exceptions were thrown, we end up here

12 11-12 Récupération de plusieurs exceptions try { // Might throw MalformedURLException URL u = new URL(str); // Might throw IOException URLConnection c = u.openConnection(); } catch (MalformedURLException e) { System.err.println("Could not open URL: " + e); } catch (IOException e) { System.err.println("Could not connect: " + e); }

13 11-13 Nettoyage avec un bloc finally FileInputStream f = null; try { f = new FileInputStream(filePath); while (f.read() != -1) charcount++; } catch(IOException e) { System.out.println("Error accessing file " + e); } finally { // This block is always executed f.close(); }

14 11-14 Récupération et gestion d'une exception : exercice pratique void makeConnection(String url) { try { URL u = new URL(url); } catch (MalformedURLException e) { System.out.println("Invalid URL: " + url); return; } finally { System.out.println("Finally block"); } System.out.println("Exiting makeConnection"); }

15 11-15 Récupération et gestion d'une exception : exercice pratique void myMethod () { try { getSomething(); } catch (IndexOutOfBoundsException e1) { System.out.println("Caught IOBException "); } catch (Exception e2) { System.out.println("Caught Exception "); } finally { System.out.println("No more exceptions "); } System.out.println("Goodbye"); }

16 11-16 Passage d'une exception à la méthode appelante • Utilisez throws dans la déclaration de méthode. • L'exception se propage sur la méthode appelante. • Utilisez throws dans la déclaration de méthode. • L'exception se propage sur la méthode appelante. public int myMethod() throws exception1 { // code that might throw exception1 } public URL changeURL(URL oldURL) throws MalformedURLException { return new URL("http://www.oracle.com"); }

17 11-17 Génération d'une exception • Utilisez le mot-clé throw pour générer des exceptions. • Utilisez throws dans la déclaration de méthode. • Utilisez le mot-clé throw pour générer des exceptions. • Utilisez throws dans la déclaration de méthode. public String getValue(int index) throws IndexOutOfBoundsException { if (index == null || index >= values.length) { throw new IndexOutOfBoundsException(); } … } throw new Exception1();

18 11-18 Création d'une exception Étendez la classe Exception. public class UserFileException extends Exception { public UserFileException (String message) { super(message); } } public class exception1 extends Exception { … }

19 11-19 Récupération d'une exception et génération d'une exception différente catch (exception1 e) { throw new exception2(…); } void ReadUserFile throws UserFileException { try { // code to open and read userfile } catch(IOException e) { throw new UserFileException(e.toString()); }

20 11-20 Résumé Durant ce cours, vous devriez avoir retenu que : • Vous pouvez utiliser des exceptions Java pour assurer une gestion robuste des erreurs. • Vous pouvez gérer des exceptions avec try, catch et finally. • Vous pouvez utiliser le mot-clé throw pour générer une exception. • Une méthode peut déclarer une exception dans sa signature pour la faire remonter vers la pile d'appels. Durant ce cours, vous devriez avoir retenu que : • Vous pouvez utiliser des exceptions Java pour assurer une gestion robuste des erreurs. • Vous pouvez gérer des exceptions avec try, catch et finally. • Vous pouvez utiliser le mot-clé throw pour générer une exception. • Une méthode peut déclarer une exception dans sa signature pour la faire remonter vers la pile d'appels.


Télécharger ppt "1111 Gestion des exceptions. 11-2 Objectifs À la fin de ce cours, vous serez capables de : • Expliquer les concepts de base de la gestion des exceptions."

Présentations similaires


Annonces Google