2. lancer (throw) une exception consiste à la signaler

Documents pareils
Programmer en JAVA. par Tama

Corrigé des exercices sur les références

Java Licence Professionnelle CISII,

Synchro et Threads Java TM

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

Un ordonnanceur stupide

Programmation Objet Java Correction

Programmation Par Objets

Premiers Pas en Programmation Objet : les Classes et les Objets

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

Développement Logiciel

Remote Method Invocation Les classes implémentant Serializable

Auto-évaluation Programmation en Java

Chapitre 10. Les interfaces Comparable et Comparator 1

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

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

J2SE Threads, 1ère partie Principe Cycle de vie Création Synchronisation

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

LOG4430 : Architecture logicielle et conception avancée

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

La gestion des exceptions

Programmation avec des objets : Cours 7. Menu du jour

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

Package Java.util Classe générique

RMI le langage Java XII-1 JMF

Calcul Parallèle. Cours 5 - JAVA RMI

Flux de données Lecture/Ecriture Fichiers

INF 321 : mémento de la syntaxe de Java

Programme Compte bancaire (code)

Objets et Programmation. origine des langages orientés-objet

Java 1.5 : principales nouveautés

Remote Method Invocation (RMI)

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

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

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

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

Création d une application JEE

Projet de programmation (IK3) : TP n 1 Correction

Remote Method Invocation en Java (RMI)

Threads. Threads. USTL routier 1

TP3. Mail. Attention aux fausses manoeuvres lors de ce TP vous pouvez endommager votre mail sur ouindose.

Gestion distribuée (par sockets) de banque en Java

PROGRAMMATION PAR OBJETS

Introduction au langage Java

Une introduction à la technologie EJB (2/3)

Introduction : les processus. Introduction : les threads. Plan

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

Notion de thread (1/2)

INITIATION AU LANGAGE JAVA

ALGORITHMIQUE ET PROGRAMMATION ORIENTEE OBJET

Programmation par les Objets en Java

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

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

TD/TP PAC - Programmation n 3

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

Support de cours et TD Programmation Orientée Objet

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

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

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

TD3: tableaux avancées, première classe et chaînes

Langage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2

Environnements de développement (intégrés)

Une introduction à Java

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

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

TD Objets distribués n 3 : Windows XP et Visual Studio.NET. Introduction à.net Remoting

LOG4430 : Architecture logicielle et conception avancée

Interfaces graphiques avec l API Swing

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

Desktop Intégration. Rémi Forax

Initiation à JAVA et à la programmation objet.

Applet pour visualiser les variables «automate» notifiées

Tutoriel d installation de Hibernate avec Eclipse

TP1 : Initiation à Java et Eclipse

2. Comprendre les définitions de classes

Architecture Orientée Service, JSON et API REST

TD/TP PAC - Programmation n 3

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

Cours 1: Java et les objets

1 Définition d une classe en Java

2 Chapitre 1 Introduction

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

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

Langage à objets : JAVA (1)

Manuel d implémentation des Web Services Sous Axis1 et Axis2/Tomcat/linux. Par Pr Bouabid EL OUAHIDI

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Prendre le marteau, le tableau, le mètre, le crayon, la ficelle, le clou, la pointe ;

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

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

Programmation d application Bases de données avec Java

TP Programmation Java / JDBC / Oracle

La JVM. La machine virtuelle Java. La JVM. La JVM

Utiliser Java sans BlueJ

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

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

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

ETUDE DE CAS en UML : GESTION DES COMMANDES DE PIECES FABRIQUEES PAR LA SOCIETE C

Prendre le marteau, le tableau, le mètre, le crayon, la ficelle, le clou, la pointe ;

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

Java DataBaseConnectivity

Transcription:

Cours 7 Exceptions 1 1. Une exception est un signal qui indique que quelque chose d'exceptionnel (par exemple une erreur) s est produite qui interrompt le flot d exécution normal du programme 2. lancer (throw) une exception consiste à la signaler 3. attraper (catch) une exécution permet d exécuter les actions nécessaires pour traiter cette situation 2

public class TSTExcp1 {public static void main (String[] args) {int tabent[]={1,2,3,4; tabent[4]=3; //erreur et arret System.out.print("fin de main "); java TSTExcp1 Exception in thread "main" java.lang.arrayindexoutofboundsexception: 4 at TSTExcp1.main(TSTExcp1.java:5) public class TSTExcp2 {public static void main (String[] args) {int tabent[]={1,2,3,4; try {tabent[4]=3; catch(exception e){system.out.println("exception"+e); System.out.print("fin de main "); java TSTExcp2 Exceptionjava.lang.ArrayIndexOutOfBoundsException: 4 fin de main 3 si une exception n est pas attrapée dans le bloc où elle a été lancée elle est transmise au bloc de niveau supérieur (récursivement) si une exception n est pas attrapée dans la méthode qui la lance, elle est propagée dans la méthode qui invoque cette dernière (récursivement) si une exception n est jamais attrapée 1- propagation jusqu à la méthode main() 2- affichage des messages d erreurs et la pile d appels 3- arrêt de l exécution du programme 4

En JAVA, les exceptions sont des objets Throwable(java.lang.Throwable) Error non récupérable erreur système (plus de mémoire, problème de chargement dynamique, etc. Exception récupérable RunTimeException IOException MyException1 ArrayIndexOf Exception MyException2 EOFException FileNotFoundException 5 Puisque les exceptions sont des objets elles contiennent attributs (variables) particuliers méthodes particulières aussi attributs et méthodes standarts String getmessage() void printstacktrace() Les exceptions étant des objets, leur structuration en une hiérarchie des classes permet de les traiter à différent niveaux d abstraction (via polymorphisme) 6

class EntNat {private int n; public EntNat(int m) throws ErrConst {if (m<0) throw new ErrConst(m); n=m; public int getn() {return n; class ErrConst extends Exception {private int errval; public ErrConst(int valeur) {errval=valeur; public int getvaleur() {return errval; public class TestExcep2 {try {EntNat n1= new EntNat(20); System.out.println("n1= "+n1.getn()); EntNat n2= new EntNat(-12); System.out.println("n2 = "+n2.getn()); catch (ErrConst e) {System.out.println("Erreur de construction avec valeur "+e.getvaleur()); System.exit(-1); 7 Exceptions usuelles NullPointerException NegativeArraySizeException IndexOutofBoundsException ArrayIndexOfBoundsException StringIndexOutOfBoundsExcpetion IllegalArgumentException ArithmeticException NumberFormatException IOException InterruptedExcpetion 8

un bloc try est suivi d un ou plusieurs blocs de catch qui permettent d'attraper les exceptions dont le type est spécifié et d exécuter le code spécifique un seul bloc de catch peut être exécuter (le premier susceptible d attraper l exception) 1- chaque clause catch est déclarée avec un argument de type Throwable ou sous-classe de Throwable 2- quand une exception est levée dans le bloc try, la première clause dont le type d argument correspond à celui de l exception levée est invoquée l ordre des blocs de catch est important 9 class Erreur extends Exception { class Erreur1 extends Erreur { class Erreur2 extends Erreur { class A {public A (int n) throws Erreur { try{ if (n==1) throw new Erreur1(); if (n==2) throw new Erreur2(); if (n==3) throw new Erreur(); catch ( Erreur1 e) {System.out.println(" Exception Erreur1 dans A"); public class TestExcep3bis {int n; for (n=1; n<=3; n++) { try {A a=new A(n); catch (Erreur1 e) {System.out.println("Exception Erreur1 dans main"); catch (Erreur2 e) {System.out.println("Exception Erreur2 dans main"); catch (Erreur e) {System.out.println("Exception Erreur dans main"); System.out.println(""); System.out.println("fin de main"); Exception Erreur1 dans A Exception Erreur2 dans main Exception Erreur dans main fin de main 10

class Erreur extends Exception { class Erreur1 extends Erreur { class Erreur2 extends Erreur { class A {public A (int n) throws Erreur { try{ if (n==1) throw new Erreur1(); if (n==2) throw new Erreur2(); if (n==3) throw new Erreur(); catch ( Erreur1 e) {System.out.println("Exception Erreur1 dans A"); catch (Erreur e) {System.out.println("Exception Erreur dans A"); throw(e); public class TestExcep3 {int n; for (n=1; n<=3; n++) { try {A a=new A(n); catch (Erreur1 e) {System.out.println("Exception Erreur1 dans main"); catch (Erreur2 e) {System.out.println("Exception Erreur2 dans main"); catch (Erreur e) {System.out.println("Exception Erreur dans main"); System.out.println(""); System.out.println("fin de main"); Exception Erreur1 dans A Exception Erreur dans A Exception Erreur2 dans main Exception Erreur dans A Exception Erreur dans main fin de main 11 finally permet de rassembler dans un seul bloc un ensemble d instructions autrement auraient du être dupliquées permet d effectuer des traitements après le bloc try, même une exception a été déclenchée ou non et attrapée ou non optionnel 12

class EntNat {private int n; public EntNat(int m) throws ErrConst {if (m<0) throw new ErrConst(); n=m; public int getn() {return n; class ErrConst extends Exception { public class TestExcep4 {try {EntNat n1= new EntNat(20); System.out.println("n1= "+n1.getn()); EntNat n2= new EntNat(-12); System.out.println("n2 = "+n2.getn()); catch (ErrConst e) n1= 20 Erreur de construction terminaison {System.out.println("Erreur de construction"); //System.exit(-1); finally {System.out.println("terminaison"); 13