ENSEIRB. Rapport du Projet POO. Equipe FFGB : FRESNAIS Marie GRIMAUD Pierre LUCAZEAU Claire MARIN Jean-Baptiste PINSOLLE Cédric



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

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

Un ordonnanceur stupide

Programmer en JAVA. par Tama

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

Programmation Objet Java Correction

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

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

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

Premiers Pas en Programmation Objet : les Classes et les Objets

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

Développement Logiciel

Corrigé des exercices sur les références

Une introduction à la technologie EJB (2/3)

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011

Java 1.5 : principales nouveautés

Auto-évaluation Programmation en Java

Introduction : les processus. Introduction : les threads. Plan

1 Définition d une classe en Java

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

Rapport de certification

INITIATION AU LANGAGE JAVA

Classe Interne, Anonyme & Enumération

LOG4430 : Architecture logicielle et conception avancée

Initiation à la Programmation en Logique avec SISCtus Prolog

F. Barthélemy. 17 mai 2005

ALGORITHMIQUE ET PROGRAMMATION ORIENTEE OBJET

Maîtriser le menu contextuel dans un OfficeBean

Génie Logiciel avec Ada. 4 février 2013

Création d une application JEE

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

Bloc 1 Sens des nombres et des opérations (+- 6 cours)

Remote Method Invocation Les classes implémentant Serializable

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

Synchro et Threads Java TM

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

Développement mobile MIDP 2.0 Mobile 3D Graphics API (M3G) JSR 184. Frédéric BERTIN

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

Remote Method Invocation (RMI)

Programmation Par Objets

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

La gestion des exceptions

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

Eclipse atelier Java

Programmation Objet 2

Conventions d écriture et outils de mise au point

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

1. Langage de programmation Java

as Architecture des Systèmes d Information

Bases Java - Eclipse / Netbeans

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

Programmation par les Objets en Java

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

Traduction des Langages : Le Compilateur Micro Java

Bases de données et fournisseurs de contenu

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

Architecture Orientée Service, JSON et API REST

Résoudre les problèmes PHP, les meilleures (et les pires) techniques

Introduction au langage Java

Java et le temps réel

Calcul Parallèle. Cours 5 - JAVA RMI

TP2 : Client d une BDD SqlServer

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

Alfstore workflow framework Spécification technique

BTS S.I.O PHP OBJET. Module SLAM4. Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais

Mieux comprendre l assurance avec Generali

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

Plan du cours. Historique du langage Nouveautés de Java 7

OpenPaaS Le réseau social d'entreprise

Définition des Webservices Ordre de paiement par . Version 1.0

Best Practices : Utilisation des APIs de Lotus Web Content Management

TP3 : Manipulation et implantation de systèmes de fichiers 1

JAVA 8. JAVA 8 - Les fondamentaux du langage. Les fondamentaux du langage Java. Avec exercices pratiques et corrigés JAVA 8 29,90.

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

Introduction à MATLAB R

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

C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement

Threads. Threads. USTL routier 1

Classe ClInfoCGI. Fonctions membres principales. Gestion des erreurs

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

HighPush. document /06/2009 Révision pour version /11/2008 Revision pour la /10/2008 Documentation initiale.

Applet pour visualiser les variables «automate» notifiées

Procédures Questionnement Réponses apportées Recommandations et avis de l IT CCAPEX

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

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

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

Java DataBaseConnectivity

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Rapport de certification

Support de cours et TD Programmation Orientée Objet

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

1/5 ENFANTS ETAUTRES PERSONNES VIVANT AU FOYER SI ENFANTS ACCUEILLIS EN DROIT DE VISITE ET D HEBERGEMENT, PRECISER :

Comment choisir la solution de gestion des vulnérabilités qui vous convient?

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

SECURITY ADVISORY VULNERABILITE SUR LES DONNEES CLIENTS MAGENTO

Cours 1: Java et les objets

Plan. Java et le temps réel. Bertrand Dupouy ENST. Rappels sur les systèmes temps réel

PROGRAMMATION PAR OBJETS

Version 7.1_5.1. Release Notes

REALISATION d'un. ORDONNANCEUR à ECHEANCES

Transcription:

ENSEIRB Rapport du Projet POO Equipe FFGB : FRESNAIS Marie GRIMAUD Pierre LUCAZEAU Claire MARIN Jean-Baptiste PINSOLLE Cédric Enseignant : M. Eyrolles RSI7 Année scolaire : 2009/2010

Sommaire 1. Lever une exception... 3 2. Capturer une exception... 3 3. Exception contrôlée... 4 Boutez vos neurones... 5 RSI 7 Page 2

1. Lever une exception Expliquer pourquoi une seule exception est levée et non les deux Jauge inverse = creerjauge(78, 13, 0); Jauge egale = creerjauge(-45, -45, -45); Le traitement s arrête et va directement chercher la fonction catch lorsqu il rencontre la première exception sans même traiter les lignes de codes qui suivent, et donc en ignorant la deuxième exception. 2. Capturer une exception Pourquoi faut-il deux blocs try/catch pour s assurer que l exception est bien levée dans tous les cas d instanciation invalide. Comme expliquer dans la partie lever de l exception, il arrête d exécuter le code try lors de la rencontre de la première exception pour aller exécuter le bloc catch, nous avons donc besoin de deux blocs try/catch pour traiter les deux exceptions du code. Quelle est la valeur des variables inverse, egale dans la partie catch? Vérifiez ces valeurs grâce à une assertion. L exécution du bloc try ne peux pas modifier la valeur de ces variables, puisque l instruction est annulée lors du traitement de l exception par le bloc catch. Elles ont donc la même qu à l initialisation dans try, mais ne sont pas accessible dans le bloc catch. Nous avons donc Inverse = (78,13,0) La commande d assertion assert permet de vérifier s il y a une erreur, mais n est pas capable de la réparer. Comment déclarer les variables pour les utiliser à la fois dans la clause try et la clause catch? Il suffit de déclarer les variables avant le bloc try pour que celles-ci puissent être utilisable aussi bien dans la clause try que catch. RSI 7 Page 3

3. Exception contrôlée Ajoutons la méthode suivante à la classe JaugeTest : throw new NullPointerException("Attention"); Donner la classe de base de cette exception? La classe de base est RuntimeException JaugeNaturel inverse = NULL; try { inverse = new JaugeNaturel(78, 13, 0); assert false : "Pas d'exception levee"; catch (IllegalArgumentException e) { System.out.println(inverse.toString()); Compiler et exécuter. Expliquer le résultat. Le système lève une exception NullPointerException, grâce à la commande run() qui appelle le code qui la contient. Remplaçons l exception dans le code précédent par une instance de la classe ClassNotFoundException. La compilation provoque une erreur. Pourquoi cette exception estelle contrôlée et pas la précédente? La classe ClassNotFoundException est de type contrôlée puisqu elle n hérite pas de RuntimeException ; A contrario, la classe IllegalArgumentException hérite de RuntimeException, elle est donc de type non-contrôlée. Ajouter la clause throws ClassNotFoundException dans le prototype de la méthode testexceptioncontrollee(). Compiler. Une erreur apparaît. Comment corriger les autres erreurs sans capturer l exception? Il faut ajouter la clause throws ClassNotFoundExecption à la méthode run() dans la classe Lancertests. Exécuter les tests. Expliquer le résultat. Une exception est apparue dans la console Exception in thread «main» java.lang.classnotfoundexception, car elle n est pas capturer. RSI 7 Page 4

Capturer l exception ClassNotFoundException dans la méthode run(), sans modifier les clauses throws des méthodes. Compiler. L exception est capturée par le run() et elle ne peut donc pas passer dans le catch. Mettre en commentaire la levée de cette exception dans la méthode testexceptioncontrollee(). Compiler. Une erreur de compilation apparaît car l exception n est pas traitée. Le bloc try/catch ne peut pas traiter l exception, puisque celle-ci ne lui est pas remontée. Conclusion : Quel contrôle effectue le compilateur? Le compilateur vérifie que les exceptions soient levées ou gérées à l intérieur du code ou vers des fonctions appelées Boutez vos neurones Est-il possible de préciser une exception non contrôlée dans une clause throws? Oui, cela est possible, mais n est pas indispensable Dans l A.P.I. y-a-t-il plus d exception contrôlée ou non contrôlée? La majorité de ces exceptions sont de type contrôlé. Dans la méthode run() comment transformer l exception contrôlée en une exception non contrôlée? Pour passer d une exception contrôlée à une exception non contrôlée, la gestion des exceptions ( try/catch et throw ) doit être supprimée. Pourquoi la classe AssertionError peut-elle être utilisée dans une instruction throw? Peutelle être capturée? Est-elle contrôlée? La classe AssertionError hérite de la classe Error qui hérite elle-même de la classe Throwable, donc il est logique qu elle puisse être utilisée dans une instruction throw, elle peut également être capturée. La classe AssertionError n hérite pas de RuntimeException, elle ne peut donc pas être contrôlée. D après la documentation de l A.P.I, que représente la classe Error? La classe Error représente un sous-type de la classe throwable. RSI 7 Page 5