Gestion d exceptions



Documents pareils
Programmation Par Objets

La gestion des exceptions

Licence Bio Informatique Année Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

Chapitre 10. Les interfaces Comparable et Comparator 1

Page 1 sur 5 TP3. Thèmes du TP : l la classe Object. l Vector<T> l tutorial Interfaces. l Stack<T>

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Facultés Universitaires Notre-Dame de la Paix. Conception et Programmation Orientées- Object

Programmer en JAVA. par Tama

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

Corrigé des exercices sur les références

RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION)

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Développement Logiciel

Programmation Objet Java Correction

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Synchro et Threads Java TM

Architecture Orientée Service, JSON et API REST

Remote Method Invocation Les classes implémentant Serializable

Serveur d'archivage 2007 Installation et utilisation de la BD exist

Un ordonnanceur stupide

Programmation Réseau. Sécurité Java. UFR Informatique jeudi 4 avril 13

LOG4430 : Architecture logicielle et conception avancée

Auto-évaluation Programmation en Java

Pour plus de détails concernant le protocole TCP conférez vous à la présentation des protocoles Internet enseignée pendant.

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

Support de cours et TD Programmation Orientée Objet

Bases du langage. Historique Applications et applets Éléments de base du langage Classes et objets Les exceptions

RMI le langage Java XII-1 JMF

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr

Notion de thread (1/2)

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Programmation Objet 2

Dis papa, c est quoi un bus logiciel réparti?

Remote Method Invocation (RMI)

Calcul Parallèle. Cours 5 - JAVA RMI

Tp 1 correction. Structures de données (IF2)

PROGRAMMATION PAR OBJETS

Java Licence Professionnelle Cours 7 : Classes et méthodes abstraites

Polymorphisme, la classe Object, les package et la visibilité en Java... 1

TD/TP PAC - Programmation n 3

Extension SSO Java. Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java.

Applet pour visualiser les variables «automate» notifiées

Desktop Intégration. Rémi Forax

Premiers Pas en Programmation Objet : les Classes et les Objets

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

Introduction au langage de programmation Java

Création d une application JEE

JAVA. Introduction à la programmation objet avec java 1/4. Nadir BOUSSOUKAIA

Une introduction à la technologie EJB (2/3)

Classe Interne, Anonyme & Enumération

Arbres binaires de recherche

API04 Contribution. Apache Hadoop: Présentation et application dans le domaine des Data Warehouses. Introduction. Architecture

Maîtriser le menu contextuel dans un OfficeBean

Package Java.util Classe générique

Programmation avec des objets : Cours 7. Menu du jour

Threads. Threads. USTL routier 1

Programmation par les Objets en Java

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :

Java DataBaseConnectivity

Java RMI. Arnaud Labourel Courriel: Université de Provence. 8 mars 2011

Communication inter-processus (IPC) : tubes & sockets. exemples en C et en Java. F. Butelle

Java Licence Professionnelle CISII,

Corrigés des premiers exercices sur les classes

TD/TP PAC - Programmation n 3

Java 1.5 : principales nouveautés

Étude de l interopérabilité de deux langages de programmation basée sur la machine virtuelle de Java

Cahier des Charges du Projet Domotique. Choquet Mathieu Masson Jérôme Groupe 6. Domotique. p.1

Remote Method Invocation en Java (RMI)

P r ob lé m a t iq u e d e la g é n é r icit é. Pr in cip e d e la g é n é r icit é e n Ja v a ( 1 /3 )

1 Définition d une classe en Java

NFP 121. Java et les Threads. Présentation : Thierry Escalarasse Mai 2007

Initiation à la programmation orientée-objet avec le langage Java

INITIATION AU LANGAGE JAVA

RMI. Remote Method Invocation: permet d'invoquer des méthodes d'objets distants.

[APPLICATON REPARTIE DE VENTE AUX ENCHERES]

Info0604 Programmation multi-threadée. Cours 5. Programmation multi-threadée en Java

Programmation par composants (1/3) Programmation par composants (2/3)

Programmation Réseau SSH et TLS (aka SSL)

INF 321 : mémento de la syntaxe de Java

La Programmation Orientée Agent Les Agents Réactifs

Présentation. Au programme. Fonctionnement. A l issue de ce module vous devriez...

Support de cours Java

Introduction au langage Java

Héritage presque multiple en Java (1/2)

Introduction. Les méthodes. Les méthodes. Identité et égalité. Identité et égalité. La copie d'objets. Identité et égalité.

Programmation Orientée Objet - Licence TIS CM8/9. Rappel sur la séance précédente. Lancelot Pecquet Lancelot.Pecquet@math.univ-poitiers.

Exploitation de bases de données relationnelles et orientées objet IFT287

Une introduction à Java

Projet de programmation (IK3) : TP n 1 Correction

LOG4430 : Architecture logicielle et conception avancée

Généralités. javadoc. Format des commentaires. Format des commentaires. Caractères spéciaux. Insérer du code

Surveiller sa maison via son Smartphone sous Android

Bases Java - Eclipse / Netbeans

Lambda! Rémi Forax Univ Paris-Est Marne-la-Vallée

Sécurité Java 2. Première approche. Installation des exemples. Exemple d'une applet

2 Chapitre 1 Introduction

et se trouve popularisé rapidement pour ses possibilités de développement liés au Web. Les

J2ME. Développement d applications Java pour terminaux mobiles - 1 -

Android UIThread, Thread, Handler et AsyncTask

Transcription:

Gestion d exceptions Quelques classes remarquables de JAVA Emmanuel ADAM Institut des Sciences et Techniques de Valenciennes Université de Valenciennes et du Hainaut-Cambrésis source principale : «Thinking in Java (B. Eckel)» Emmanuel ADAM Université de Valenciennes et du Hainaut Cambrésis Cours JAVA n 2 p: 21

Les exceptions La gestion des exceptions est très importante, voire primordiale, dans tous systèmes informatiques. Elle confère un aspect beaucoup plus professionnel aux applications. Eviter les applications qui plantent sans information précise, ex : Emmanuel ADAM Université de Valenciennes et du Hainaut Cambrésis Cours JAVA n 2 p: 22

Les exceptions (2) Les exceptions sont des instances des classes héritant des classes java.lang.error (pour des erreurs graves quasi impossibles à gérer : plus de mémoire, classe manquante,...) java.lang.exception (pour des exceptions attendues sinon probables pouvant être gérée : débordement d un tableau, erreur de calcul,...). Ces deux classes implémentent l interface Throwable Emmanuel ADAM Université de Valenciennes et du Hainaut Cambrésis Cours JAVA n 2 p: 23

Les exceptions (3) La classe Exception possède deux constructeurs Exception() et Exception (String msg) ). Elle hérite de l interface Throwable de : getmessage qui permet de récupérer le message de l exception s il existe. tostring, qui retourne la classe et le message sous forme de chaîne. printstacktrace, qui fait appel à tostring, mais qui en plus indique l endroit du programme où a été levée l exception. Emmanuel ADAM Université de Valenciennes et du Hainaut Cambrésis Cours JAVA n 2 p: 24

Capture d une exception Pour récupérer, ou attraper, une exception :. try {. //endroit où pourrait apparaître une exception catch (type_exception_1 e1) {. // traitement de l exception de type 1 catch (type_exception_2 e2) {. // traitement de l exception de type 2 finally {. // dans tous les cas, passer par ici. Emmanuel ADAM Université de Valenciennes et du Hainaut Cambrésis Cours JAVA n 2 p: 25

Exemple (1) int[] a = {1,2,3,4,5,6,7,8,9,10; int[] b = {10,9,8,7,6,5,0,3,2,1; Exception levée int []c = new int[10]; for(int i=0; i<=10; i++) { try { c[i] = a[i] / b[i]; System.out.println("c["+i+"] = " + c[i]); Exception attrapée et gérée catch(exception e) { System.out.println("division par 0..."); c[i] = 0; System.out.println("dans ce cas c["+i+"] = " + c[i]); Reprise du programme Emmanuel ADAM Université de Valenciennes et du Hainaut Cambrésis Cours JAVA n 2 p: 26

Des classes d Exception ClassNotFoundException, CloneNotSupportedException, IllegalAccessException,.InstantiationException, InterruptedException, NoSuchFieldException, NoSuchMethodException, RuntimeException, ArithmeticException, ArrayStoreException, ClassCastException, IllegalArgumentException, IllegalThreadStateException, NumberFormatException, IllegalMonitorStateException, IllegalStateException, IndexOutOfBoundsException, ArrayIndexOutOfBoundsException, StringIndexOutOfBoundsException, NegativeArraySizeException, NullPointerException, SecurityException, UnsupportedOperationException Emmanuel ADAM Université de Valenciennes et du Hainaut Cambrésis Cours JAVA n 2 p: 27

Exemple (2) int[] a = {1,2,3,4,5,6,7,8,9,10; int[] b = {10,9,8,7,6,5,0,3,2,1; Exception levée int []c = new int[10]; for(int i=0; i<=10; i++) { try { c[i] = a[i] / b[i]; System.out.println("c["+i+"] = " + c[i]); Erreur de calcul attrapée et gérée catch(arithmeticexception e) { System.out.println("division par 0..."); c[i] = 0; System.out.println("dans ce cas c["+i+"] = " + c[i]); catch(exception e) { Autres erreurs System.out.println("... erreur imprevue...\n" + e); Emmanuel ADAM Université de Valenciennes et du Hainaut Cambrésis Cours JAVA n 2 p: 28

Propagation d une exception Si une exception n est pas gérée dans une procédure, elle se propage hors de la procédure, Il faut donc que cette procédure soit capable de propager l exception (utilisation du mot clé throws), Si à la fin du programme, une exception n a pas été attrapée, la pile des méthodes traversées par l'exception est affichée. Emmanuel ADAM Université de Valenciennes et du Hainaut Cambrésis Cours JAVA n 2 p: 29

Exemple (3) public void diviser() throws Exception{ for(int i=0; i<=10; i++) { c[i] = a[i] / b[i]; System.out.println("c[" + i + "] = " + c[i]); Exception propagée Exception levée void test() { try { diviser(); catch(arithmeticexception e) { System.out.println("division par 0..."); Exception attrapée et gérée catch(exception e) { System.out.println("... erreur imprevue...\n" + e); System.out.println("suite du prog"); Emmanuel ADAM Université de Valenciennes et du Hainaut Cambrésis Cours JAVA n 2 p: 30

Définir son exception Il est possible de définir une exception en la faisant dériver de la classe Exception : class MonExceptionDivision extends Exception { public String tostring() { return "Problème de division"; Le mot clé throw permet de lancer son exception. Emmanuel ADAM Université de Valenciennes et du Hainaut Cambrésis Cours JAVA n 2 p: 31

Exemple (4) public void diviser() throws Exception{ Exception propagée for(int i=0; i<=10; i++) { if (b[i] == 0) throw new MonExceptionDivision(); c[i] = a[i] / b[i]; Exception lancée System.out.println("c[" + i + "] = " + c[i]); void test() { try { diviser(); catch(exception e) { System.out.println("... erreur : " + e); System.out.println("suite du prog"); Exception attrapée et gérée Emmanuel ADAM Université de Valenciennes et du Hainaut Cambrésis Cours JAVA n 2 p: 32