1 Part3 3
2 Exception Générée par un problème de programme Objet définissant une erreur Peut être saisie et traitée par un programme Une erreur: situation non remédiable
3 Gestion des exceptions Classes importantes Méthodes importantes Instructions try-catch Exemple de messages
4 Gestion des exceptions Propagation dexception Instruction throw Clause finally Exemples
5 Classes importantes Las classe Throwable La classe Exception La classe Error La classe IOException La classe RuntimeException
6 Classes importantes Throwable ErrorException IOExceptionRuntimeException
7 java.lang.Thowable Le parent de toutes les classes exception et erreur Throwable (String message)
8 java.lang.Throwable fillInStackTrace(): méthode native printStackTrace(): méthode native getMessage(): retourne le message derreur
9 java.lang.Error Des problèmes sérieux Lapplication ne doit pas intercepter Error (String message)
10 java.lang.Exception Toutes les erreurs quon pourrait traiter Exception (String message)
11 java.lang.IOException Des problèmes de E/S IOException(): appel au constructeur de Exception
12 java.lang.RuntimeException Les erreurs de la virtual machine RuntimeException(): appel à Exception
13 try/catch Bloc try: il doit surmonter une exception Bloc catch: Comment traiter lexception try { instructions } catch (exception-class1 var1) { instructions } catch
14 try/catch Si aucune exception: bloc try à exécuter Chaque catch gère une exception particulière Exemple:
15 Propagation dexception Exception: contrôle passé à la méthode appelante Propagation de contrôle Exemple:
16 Instruction throw throw exception-variable; Créée et saisie par le programmeur Exemple:
17 Clause finally Clause optionnelle Une partie à exécuter peu importe la sortie du try try {instructions } catch (exception-class1 var1) {instructions }catch……… } finally { instructions}
18 Classes importantes La classe ClassCastException La classe SecurityException La classe EOFException La classe FileNotFoundException La classe SocketException
19 Zoo
20 Zoo
21 Gestion de fichiers Classes abstraites Bytes stream Filtering streams Character streams Object stream (Sérialization) Fichiers et filtres de noms de fichiers
22 java.io.InputStream Lire des entrées Méthodes: read(byte b [ ], int off, int len): Lire un buffer et le placer dans le tableau
23 java.io.OutputStream Effectuer des opérations de sortie Classe abstraite Méthodes: close (): fermer output stream, libérer ressources write(byte b [ ]): écrire dans le output stream
24 IOException Saisir les exceptions décriture de fichiers Une entrée/sortie sest mal déroulée getMessage(): pour afficher un message
25 java.io.BufferedReader Mettre dans un buffer une entrée Constantes: defaultCharBufferSize = 8192;// taille par défaut defaultExpectedLineLength = 80;// taille ligne
26 java.io.BufferedReader Méthodes: BufferedReader(Reader in): créer nouveau buffer fill(): remplir le buffer readLine(): lire une ligne de texte close(): fermer le stream
27 java.io.InputStreamReader Transformer des octets en chaînes de caractères Constantes: defaultByteBufferSize = 8192;// taille par défaut Méthodes: InputStreamReader(InputStream in) // par défaut convertInto(char cbuf[ ], int off, int end) // conversion
28 Les flux doctets Sous classes de InputStream ou OutputStream File Input Stream File Output Stream Accès directe
29 java.io.File Création de nouveau fichiers Variables: private String path; // chemin d accès static private FileSystem fs // le SGF local
30 java.io.File Méthodes: public File(String pathname) // nouveau fichier public boolean canWrite() // écriture public String getAbsolutePath() // chemin public String getName() // nom du fichier
31 La classe File Pour copier, renommer des fichiers renameTo (File) delete () mkdir ()
32 FileInputStream Constructeur: FileInputStream(String nomFic) Pour lire méthode read () (bit par bit) read (byte [ ], int, int) close (): fermer le stream Exception: java.io.FileNotFoundException
33 FileOutputStream Constructeur: FileOutputStream (String nomFic) Constructeur: FileOutputStream (Sting, boolean) Pour écrire: write (int) Pour écrire plusieurs octets: write (byte [ ], int, int) Pour fermer le stream: close ()
34 Accès direct Ecrire ou lire de nimporte quel emplacement Classe: RandomAccessFile
35 java.io.RandomAccessFile RandomAccessFile (String nameFic, String mode) getFilePointer(): position courante pointeur fichier seek (long pos): fixe la position du pointeur pos length (): renvoie la longueur du fichier en octets
36 Les flux de filtre Modification de linformation envoyée Buffered streams Data streams
37 Les flux bufférisés BufferedInputStreams BufferedOutputStream
38 java.io.BufferedInputStream BufferedInputStream (InputStream) BufferedInputStream (InputStream, int) Lecture: read () Lecture: read (byte [ ], int, int) Fermeture: close ()
39 Les flux de données Pas de bytes caractères Data output ou data input streams boolean, byte, double, float, int, long et short
40 DataInputStreams DataInputStream (InputStream) readBoolean () readByte () readDouble ()
41 readFloat () readInt () readLong () readShort () DataInputStreams
42 DataOutputStream (OutputStream) writeBoolean(boolean) writeBytes (String) writeDouble (double) writeInt (int) DataOutputStreams
43 writeFloat (float) writeInt (int) writeLong (long) writeShort (short) DataOutputStreams
44 Unicode ou ASCII Lecture de fichiers texte Ecriture de fichiers texte Les flux de texte
45 Lecture dun flux de caractère FileReader (String nomFic) read () Lecture de fichier
46 read (char (), int, int) Exemple: Lecture de fichier
47 Ecriture dun flux de caractère FileWriter (String nomFic) write (int) write (String, int, int) Exemple: Ecriture de fichier
48 Enregistrer le type de objets Enregistrer les données de lobjets ObjectOutputStream (FileOutputStream) writeObject (Object) Flux dobjet (sérialisation)
49 ObjectInputStream (FileInputStream) readObject (Object) Implanter la classe Serializable Exemple: Flux dobjet (sérialisation)
50 Threads Création de thread Problèmes Synchronisation Contrôle de thread Exemples
51 Création de thread Effectuer plusieurs tâches Traitement parallèle Chaque thread effectue une tâche
52 Héritage de la classe Thread Possibilité de surcharge de la méthode run Créer une nouvelle classes Implanter linterface Runnable Création de thread
53 Création de thread On commence par invoquer la méthode start Concurrent flow task1 task2 task3
54 Création des threads Priorité des threads: 1 à 10 Les méthodes start () et run () Les méthodes wait () et notify ()
55 Priorité des threads
56 Problème avec threads Partage de données Compte Thread1 Thread2
57 Synchronisation Un seul thread accède à la donnée Utiliser le mot clé synchronised Pas dexécution de méthode synchronisée
58 Contrôle de threads suspend (), resume (), sleep () suspend (): suspendre le thread resume (): reprendre le thread sleep (long milliseconds): suspendre le thread pour un temps
59 États dun thread Né Prêt Sexécute Mort En suspensEn hibernationBloquéEn attente resume Fin du délai dattente stopcomplétion wait notify notifyall Complétion dE/S sleepsuspend Entrées/Sorties start Allocation du processeur yield
60 Groupe de threads Grouper les threads public ThreadGroup (String nomGroupe) public Thread (ThreadGroup, String)
61 Comparaison applet/application Exemple application Exemple applet Sécurité applet
62 Sécurité Divulgation dinformations Indisponibilité des ressources Atteinte à lintégrité Nuisance
63 Securité dapplet
64 Securité
65 Java est fortement typé Java noffre pas de notion de pointeur Protection de laccès: variables, méthodes et classes Sécurité langage
66 Interdire la redéfinition de méthodes sensibles (mot- clé final) Java interdit lhéritage multiple Java gère la désallocation de la mémoire Sécurité langage
67 Sécurité bytecode Vérifier toutes les information identifiant une classe Existence des classes et des types utilisés Pas de redéfinition des méthodes finales Un contrôle sur le type est effectué La taille et le format des types
68 Sécurité du chargement Les classes sont chargées dynamiquement Distinguer les classes importées des classes locales Impossible décraser des classes locales Un seul chargeur de classes par navigateur
69 Gestionnaire de sécurité Contrôler les droits d accès Un seul gestionnaire de sécurité par navigateur Non autorisée à exécuter des programmes sur le client