Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2081 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  utilisation d'exception (try catch)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

utilisation d'exception (try catch)

n°1146152
blaise_lap​orte
Posté le 11-07-2005 à 11:43:32  profilanswer
 

Bonjour
 
Voila, je debute en progra et j'ai un probleme avec l'utilisation des exceptions.
 
Quand j'initialise une variable dans un try{...}, le compilateur (j'utilise javac) me dit que la dite variable n'est pas initialisé; et si je vire la gestion de l'exeption, le compilateur n'est pas content.
 
En faite, j'aimerais savoir pourquoi le compilateur ne "voit" pas l'initialisation de la variable si elle est dans un try?
 
Merci

mood
Publicité
Posté le 11-07-2005 à 11:43:32  profilanswer
 

n°1146157
beemer
Posté le 11-07-2005 à 11:46:45  profilanswer
 

met ton bout de code ou tu fais ca

n°1146173
blaise_lap​orte
Posté le 11-07-2005 à 11:55:02  profilanswer
 

exemple:
 
(C'est pour la gestion du port serie)
 

Code :
  1. CommPortIdentifier portId; //declaration de portId
  2. try{
  3. portId=CommPortIdentifier.getPortIdentifier("COM1" );//initialisation de portId
  4. }catch(NoSuchPortExection e){
  5. //traitement de l'exeption
  6. }


 
Et plus tard, quand j'utilise portId, le compilateur me dit qu'il n'a pas été initialisé.

n°1146199
Chronoklaz​m
Posté le 11-07-2005 à 12:14:24  profilanswer
 

"might not have been initialized" => Ca se pourrait qu'elle soit pas initializée !
 
Solution bourrine :  
 

Code :
  1. CommPortIdentifier portId = null; //declaration de portId
  2.      try{
  3.      portId=CommPortIdentifier.getPortIdentifier("COM1" );//initialisation de portId
  4.      }catch(NoSuchPortExection e){
  5.      //traitement de l'exeption
  6.      }


 
Et voilà plus d'erreurs à la compile :)

n°1146205
blaise_lap​orte
Posté le 11-07-2005 à 12:26:38  profilanswer
 

bourine mais fonctionnelle.
Merci
 
Sinon, question d'ordre generale: une init dans un try n'est jamais prise en compte par le compilateur?
 

n°1146216
victorus_e​cl
PIBCAK
Posté le 11-07-2005 à 12:43:16  profilanswer
 

c'est surtout que ce qu'il y a dans un try est par définition susceptible de ne pas être éxécuté...
et donc si le compilo laissait passer, ça serait la m.... le jour ou l'exception arrive :)


Message édité par victorus_ecl le 11-07-2005 à 12:45:18
n°1146221
Chronoklaz​m
Posté le 11-07-2005 à 12:50:14  profilanswer
 

Si bien sur ...
Moi si j'init une var dans le bloc try, toutes les instructions d'aprés SONT dans le bloc try.

n°1146365
blaise_lap​orte
Posté le 11-07-2005 à 14:28:33  profilanswer
 

Mais est-ce que certaine API oblige que l'on utilise les exeption? En faite, quand de je prenais le code si-dessu sans le try et catch  

Code :
  1. CommPortIdentifier portId; //declaration de portId
  2. portId=CommPortIdentifier.getPortIdentifier("COM1" );//initialisation de portId


 
la compilation ne se faisait pas.

Citation :


TestComm.java:14: unreported exception javax.comm.NoSuchPortException; must be caught or declared to be thrown


 

n°1146379
beemer
Posté le 11-07-2005 à 14:38:31  profilanswer
 

blaise_laporte a écrit :

exemple:
 
(C'est pour la gestion du port serie)
 

Code :
  1. CommPortIdentifier portId; //declaration de portId
  2. try{
  3. portId=CommPortIdentifier.getPortIdentifier("COM1" );//initialisation de portId
  4. //si tu utilises le portId ici il ne doit pas gueler
  5. }catch(NoSuchPortExection e){
  6. //traitement de l'exeption
  7. }
  8. //si tu utilise ton portId ici il est pas forcement initialisé  
  9. //parce que justement la methode getPortIdentifier() peut jeter une exception et donc portId est pas initialiser


 
Et plus tard, quand j'utilise portId, le compilateur me dit qu'il n'a pas été initialisé.


n°1146381
beemer
Posté le 11-07-2005 à 14:40:12  profilanswer
 

blaise_laporte a écrit :

Mais est-ce que certaine API oblige que l'on utilise les exeption? En faite, quand de je prenais le code si-dessu sans le try et catch  

Code :
  1. CommPortIdentifier portId; //declaration de portId
  2. portId=CommPortIdentifier.getPortIdentifier("COM1" );//initialisation de portId


 
la compilation ne se faisait pas.

Citation :


TestComm.java:14: unreported exception javax.comm.NoSuchPortException; must be caught or declared to be thrown



normal, getPortIdentifier jete une excpetion NoSuchPortException, tu es donc oblige de la traiter (soit avec try catch soit la jeter a ton tour plus loin)

mood
Publicité
Posté le 11-07-2005 à 14:40:12  profilanswer
 

n°1146385
blaise_lap​orte
Posté le 11-07-2005 à 14:41:35  profilanswer
 

Ok.
 
Va faloir que je me trouve un tutorial sur les exceptions :D.
 
Merci pour toute vos reponse.


Message édité par blaise_laporte le 11-07-2005 à 14:41:48
n°1146753
bobuse
Posté le 11-07-2005 à 17:22:36  profilanswer
 

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  utilisation d'exception (try catch)

 

Sujets relatifs
SQL Server 2000 : Stats sur l'utilisation des index ?JSP : probleme utilisation jsp:useBean
Utilisation des API C de MySQLutilisation de Apache en proxy pour Tomcat
Utilisation de la librairie GD[applet] utilisation JFileChooser [Résolu]
[C/C++] utilisation de code C dans du C++[Builder C++ 6] Utilisation dynamique d'une DLL [résolu...]
[SQL Server] Utilisation de xp_sendmail[C] - utilisation de chroot() (unistd.h)
Plus de sujets relatifs à : utilisation d'exception (try catch)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR