La gestion des exceptions



Documents pareils
C++ Programmer. en langage. 8 e édition. Avec une intro aux design patterns et une annexe sur la norme C++11. Claude Delannoy

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

Programmer en JAVA. par Tama

Programmation Objet Java Correction

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

Premiers Pas en Programmation Objet : les Classes et les Objets

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

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

Un ordonnanceur stupide

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

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

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

RMI le langage Java XII-1 JMF

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

Interfaces graphiques avec l API Swing

Remote Method Invocation (RMI)

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

SUPPORT DE COURS / PHP PARTIE 3

Synchro et Threads Java TM

INITIATION AU LANGAGE JAVA

Qu est-ce qu une tâche?

NOTICE TELESERVICES : Payer un impôt et gérer les contrat de paiement des impôts professionnels

Utilisation d objets : String et ArrayList

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

Haka : un langage orienté réseaux et sécurité

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

Conditions générales Claim it

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

Reporting Services - Administration

Support de cours et TD Programmation Orientée Objet

Programmation Par Objets

Maîtriser le menu contextuel dans un OfficeBean

Auto-évaluation Programmation en Java

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski

Chapitre 10. Les interfaces Comparable et Comparator 1

Cours d initiation à la programmation en C++ Johann Cuenin

Développement Logiciel

Remote Method Invocation en Java (RMI)

Didacticiel Études de cas. Description succincte de Pentaho Data Integration Community Edition (Kettle).

.NET - Classe de Log

La mémoire. Un ordinateur. L'octet. Le bit

Introduction : les processus. Introduction : les threads. Plan

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

ASSOCIATION CANADIENNE DES PAIEMENTS RÈGLE 6 DU STPGV TRANSMISSIONS DES PAIEMENTS

Création d un service web avec NetBeans 5.5 et SJAS 9

ANNUITES. Les annuités définissent une suite de versements identiques ou non effectués à intervalles de temps égaux. -annuités non constantes

GeoGebra & Microsoft Office 631

LES TYPES DE DONNÉES DU LANGAGE PASCAL

Chapitre I Notions de base et outils de travail

Anne Tasso. Java. Le livre de. premier langage. 6 e édition. Groupe Eyrolles, 2000, 2002, 2005, 2006, 2008, 2010, ISBN :

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

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

Freeway 7. Nouvelles fonctionnalités

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

Une introduction à la technologie EJB (2/3)

TP1. Outils Java Eléments de correction

les Formulaires / Sous-Formulaires Présentation Créer un formulaire à partir d une table...3

RSA ADAPTIVE AUTHENTICATION

ANNEXE 3 CHARTE DE COMMUNICATION DES SERVICES SMS+ / MMS+

IFT287 Exploitation de base de données relationnelles et orientées objet. Laboratoire Mon premier programme Java en Eclipse

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

CQP Plasturgie Opérateur spécialisé en assemblage, parachèvement finition. Référentiels d activités et de compétences Référentiel de certification

Architecture Orientée Service, JSON et API REST

Organisme de recherche et d information sur la logistique et le transport LES TECHNIQUES DE SUIVI DES ARTICLES ET DES STOCKS

Flux de données Lecture/Ecriture Fichiers

Julien MATHEVET Alexandre BOISSY GSID 4. Rapport RE09. Load Balancing et migration

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

Création d objet imbriqué sous PowerShell.

Travaux Pratiques : Lucène - Gestion d un index plein texte

Tolérance aux Fautes des Grappes d Applications J2EE. Applications Internet dynamiques

CQP Plasturgie Assemblage parachèvement finitions. Référentiels d activités et de compétences Référentiel de certification

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

L envoi d un formulaire par courriel. Configuration requise Mail Texte Mail HTML Check-list

IV- Comment fonctionne un ordinateur?

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

Services bancaires par Internet aux entreprises. Guide pratique pour : Rapports de solde Version

INF 321 : mémento de la syntaxe de Java

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

N Les procédures stimulus *# de l ancien système VoIP demeurent disponibles.

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

Cours 1: Java et les objets

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

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

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

Dossier Logique câblée pneumatique

Certificat Big Data - Master MAthématiques

données en connaissance et en actions?

Vous êtes. visé. Comment diminuer les risques et les impacts d une agression en milieu bancaire

1 Définition d une classe en Java

ANNEXE 1 RECOMMANDATIONS DEONTOLOGIQUES APPLICABLES AUX SERVICES SMS+ / MMS+

L utilisation d un réseau de neurones pour optimiser la gestion d un firewall

Création d une application Android (APPInventor)

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

Chapitre 1 : La gestion dynamique de la mémoire

Web Tier : déploiement de servlets

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

La double authentification dans SharePoint 2007

3. NORMES RELATIVES A LA CERTIFICATION DES COMPTES ANNUELS CONSOLIDES

Corrigé des exercices sur les références

Transcription:

La gestion des exceptions Même lorsqu un programme est au point, certaines circonstances exceptionnelles peuvent compromettre la poursuite de son exécution ; il peut s agir par exemple de données incorrectes ou de la rencontre d une fin de fichier prématurée (alors qu on a besoin d informations supplémentaires pour continuer le traitement). Java dispose d un mécanisme très souple nommé gestion d exception, qui permet à la fois : de dissocier la détection d une anomalie de son traitement, de séparer la gestion des anomalies du reste du code, donc de contribuer à la lisibilité des programmes. D une manière générale, une exception est une rupture de séquence déclenchée par une instruction throw comportant une expression de type classe. Il y a alors branchement à un ensemble d instructions nommé "gestionnaire d exception". 1 Premier exemple d exception 1.1 Comment déclencher une exception avec throw Considérons une classe Point, munie d un constructeur à deux arguments et d une méthode affiche. Supposons que l on ne souhaite manipuler que des points ayant des coordonnées non négatives. Nous pouvons, au sein du constructeur, vérifier la validité des paramètres fournis. Lorsque l un d entre eux est incorrect, nous "déclenchons1" une exception à l aide de l instruction throw. À celle-ci, nous devons fournir un objet dont le type servira ultérieurement à identifier l exception concernée. Nous créons donc (un peu artificiellement) une classe que nous nommerons ErrCoord. Java impose que cette classe dérive de la classe standard Exception. Pour l instant, nous n y plaçons aucun membre (mais nous le ferons dans d autres exemples) : Pour lancer une exception de ce type au sein de notre constructeur, nous fournirons à l instruction throw un objet de type Errconst, par exemple de cette façon : En définitive, le constructeur de notre classe Point peut se présenter ainsi :

Notez la présence de throws ErrConst, dans l en-tête du constructeur, qui précise que la méthode est susceptible de déclencher une exception de type ErrConst. Cette indication est obligatoire en Java, à partir du moment où l exception en question n est pas traitée par la méthode elle-même. En résumé, voici la définition complète de nos classes Point et ErrCoord : 1.2 Utilisation d un gestionnaire d exception Disposant de notre classe Point, voyons maintenant comment procéder pour gérer convenablement les éventuelles exceptions de type ErrConst que son emploi peut déclencher. Pour ce faire, il faut : inclure dans un bloc particulier dit "bloc try" les instructions dans lesquelles on risque de voir déclenchée une telle exception ; un tel bloc se présente ainsi : faire suivre ce bloc de la définition des différents gestionnaires d exception (ici, un seul suffit). Chaque définition de gestionnaire est précédée d un en-tête introduit par le mot-clé catch (comme si catch était le nom d une méthode gestionnaire). Voici ce que pourrait être notre unique gestionnaire :

Ici, il se contente d afficher un message et d interrompre l exécution du programme en appelant la méthode standard System.exit (la valeur de l argument est transmise à l environnement qui peut éventuellement l utiliser comme "compte rendu"). 1.3 Le programme complet À titre indicatif, voici la liste complète de la définition de nos classes, accompagnée d un petit programme de test dans lequel nous provoquons volontairement une exception : 2. Gestion de plusieurs exceptions Voyons maintenant un exemple plus complet dans lequel on peut déclencher et traiter deux types d exceptions. Pour ce faire, nous considérons une classe Point munie : du constructeur précédent, déclenchant toujours une exception ErrConst, d une méthode deplace qui s assure que le déplacement ne conduit pas à une coordonnée négative ; si tel est le cas, elle déclenche une exception ErrDepl (on crée donc, ici encore, une classe ErrDepl) :

Lors de l utilisation de notre classe Point, nous pouvons détecter les deux exceptions potentielles ErrConst et ErrDepl en procédant ainsi (ici, nous nous contentons comme précédemment d afficher un message et d interrompre l exécution) : Voici un exemple complet de programme dans lequel nous provoquons volontairement une exception ErrDepl ainsi qu une exception ErrConst :

3. Transmission d information au gestionnaire d exception Dans certains cas, on peut se contenter de transmettre un "message" au gestionnaire, sous forme d une information de type chaîne. En effet, la classe Exception dispose d un constructeur à un argument de type String dont on peut récupérer la valeur à l aide de la méthode getmessage (dont héritera votre classe). 4. Les exceptions standard Java fournit de nombreuses classes prédéfinies dérivées de la classe Exception, qui sont utilisées par certaines méthodes standard ; par exemple, la classe IOException et ses dérivées sont utilisées par les méthodes d entrées-sorties. Certaines classes exception sont même utilisées par la machine virtuelle à la rencontre de situations anormales telles qu un indice de tableau hors limites, une taille de tableau négative... Voici un exemple de programme qui détecte les exceptions standard NegativeArraySizeException et ArrayIndexOutOfBoundsException et qui utilise la méthode

getmessage pour afficher le message correspondant2. Il est accompagné de deux exemples d exécution.