Cours de programmation avancée en langage Java portant sur la gestion des exceptions.
[...] static public void main (String[] args) ExceptionScope demo = new ExceptionScope(); System.out.println("Program beginning."); demo.level1(); System.out.println("Program ending."); Propagation:L'imprimé Program beginning. Level 1 beginning. [...]
[...] ExceptionScope.java public void level2() System.out.println("Level 2 beginning."); level3 System.out.println("Level 2 ending."); Performs a calculation to produce an exception. It is not caught and handled at this level. public void level3 int numerator = 10, denominator = System.out.println("Level 3 beginning."); int result = numerator / denominator; System.out.println("Level 3 ending."); L'Hiérarchie de classe d'exception Figure 8.1 p.458 Object Throwable Error AWTError VirtualMachineError Exception RunTimeException ArithmeticException IndexOutOfBoundException NullPointerException IOException NoSuchMethodException . [...]
[...] Level 2 beginning. Level 3 beginning. [...]
[...] Java : Gestion des exceptions Chapter Gestion des exceptions Objectifs du cours: Gestion des exceptions Comprendre ce qui suit: Le fonctionnement de «try-catch» Propagation d'exception Créer et lancer les exceptions types de stream» Étudiez la section 8.0 pour l'examen final Que sont les Exceptions? Une exception est un objet qui décrit une situation anormal ou erronée; tel que l'abus Exceptions sont lancé par un programme, et peuvent être attrapé et utilisé par une autre partie du programme Un programme peut-être séparé en: Un flux normal d'exécution Un flux d'exception d'exécution Une erreur est aussi représenté dans Java comme objet mais en général représente une situation sans retour et ne devrait pas être attrapée Prise en charge d`Exception en Java Java utilise un ensemble prédéfini d'exceptions et d'erreurs qui peuvent arriver durant l`exécution Un programme peut s'occuper d'une exception d'une de 3 façons: L'ignorer S'en occuper là ou elle arrive S'en occuper dans une autre place dans le programme La manière dont l'exception est traitée est un aspect important de conception Prise en charge d`Exception en Java Le message inclus une pile d'appel qui inclut l'instruction où l'exception à eu lieu La pile d'appel montre aussi quelles sont les méthodes (et leur ordre d'invocation) qui ont crée cette situation La méthode getMessage retourne un String expliquant pourquoi l'exception à été lancé La méthode printStackTrace imprime la pile d'appel Voir Zero.java (p.449) Zero.java public class Zero{ Deliberately divides by zero to produce an exception. public static void main (String[] args) int numerator = int denominator = System.out.println (numerator / denominator); System.out.println ("This text will not be printed."); Prise en charge d'Exception commande Afin de s'occuper d'une exception quand elle arrive, on met l'instruction qui lance l'exception dans un block try Un block try est suivie de un ou plus de clause catch qui s'occupent de l'exception Chaque clause catch à un type exception associé, et est dénommé une «exception handler» Quand une exception prend place, la 1ère clause catch dont le type d'exception correspond s'en occupe Voir ProductCodes.java (page xxx) ProductCodes.java import cs1.Keyboard;public class ProductCodes{ Counts the number of product codes that are entered with zone of R and district greater than 2000. public static void main (String[] args) String code; char zone; int district, valid = banned = System.out.print ("Enter product code (XXX to quit): code = Keyboard.readString(); Continued ProductCodes.java while (!code.equals try zone = code.charAt(9); district = Integer.parseInt(code.substring(3, valid++; if (zone district > 2000) banned++; catch (StringIndexOutOfBoundsException exception) System.out.println ("Improper code length: " + code); catch (NumberFormatException exception) System.out.println ("District is not numeric: " + code); System.out.print ("Enter product code (XXX to quit): code = Keyboard.readString(); System.out.println of valid codes entered: " + valid); System.out.println of banned codes entered: " + banned); La Clause finally La commande try peut avoir une clause optionnelle suivant les clause catch, dénommé par le mot réservé finally Le code dans la clause finally est toujours exécutée S'il n'y a pas d'exception lancée, le code dans la clause finally est exécuté après que le code du block try ai été exécuté Si il y a eu une expection lancée,le code dans la clause finally est exécuté après que le code de la clause catch approprié ai été exécuté Propagation d'exception Une exception peut-être prise en charge à un niveau plus haut s'il n'est pas approprié de s'en occuper quand elle arrive Les exceptions se propagent vers le haut dans la hiérarchie de méthode appelante jusqu'a ce qu'elles sont attrapées et prises en charge ou jusqu'a ce qu'elles atteignent la méthode main Un block try qui contient un appel à la méthode dans laquelle une exception est lancée, peut attraper celle-ci Voir Propagation.java (page xxx) Voir ExceptionScope.java (page xxx) Propagation.java public class Propagation{ Invokes the level1 method to begin the exception demonstation. [...]
[...] The exception message is: / by zero The call stack trace:java.lang.ArithmeticException: / by zero at ExceptionScope.level3(ExceptionScope.java:54) at ExceptionScope.level2(ExceptionScope.java:41) at ExceptionScope.level1(ExceptionScope.java:18) at Propagation.main(Propagation.java:17)Level 1 ending.Program ending. ExceptionScope.java public class ExceptionScope{ Catches and handles the exception that is thrown in level3. public void level1() System.out.println("Level 1 beginning."); try level2(); catch (ArithmeticException problem) System.out.println System.out.println ("The exception message is: " problem.getMessage()); System.out.println System.out.println ("The call stack problem.printStackTrace(); System.out.println System.out.println("Level 1 ending."); } Continued . [...]
Source aux normes APA
Pour votre bibliographieLecture en ligne
avec notre liseuse dédiée !Contenu vérifié
par notre comité de lecture