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

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Suivante
Auteur Sujet :

[Topic tuto] Les exceptions

n°1116355
nraynaud
lol
Posté le 10-06-2005 à 23:40:14  profilanswer
 

Reprise du message précédent :

lorill a écrit :

c'est quand que tu passes a strasbourg acheter un costard pour uriel déja ?


arrêt de te frotter à ma jambe comme ça !
 
 
 
Et merde ! trop tard, il a salopé mon futal !


---------------
trainoo.com, c'est fini
mood
Publicité
Posté le 10-06-2005 à 23:40:14  profilanswer
 

n°1116375
chrisbk
-
Posté le 10-06-2005 à 23:49:07  profilanswer
 

y manque de mots, jean louis :o


---------------
NP: HTTP Error 764 Stupid coder found
n°1116382
chrisbk
-
Posté le 10-06-2005 à 23:53:47  profilanswer
 

[:vague nocturne]


---------------
NP: HTTP Error 764 Stupid coder found
n°1116385
chrisbk
-
Posté le 10-06-2005 à 23:54:53  profilanswer
 

bordel tu t'es saoulé avec whatde ? [:pingouino]


---------------
NP: HTTP Error 764 Stupid coder found
n°1116386
nraynaud
lol
Posté le 10-06-2005 à 23:54:56  profilanswer
 

RAAAAAAAAAAAAAAAAAAAAAAAHHHHHHHH
 
 


---------------
trainoo.com, c'est fini
n°1116387
chrisbk
-
Posté le 10-06-2005 à 23:55:17  profilanswer
 

jean louis.


---------------
NP: HTTP Error 764 Stupid coder found
n°1116388
nraynaud
lol
Posté le 10-06-2005 à 23:55:22  profilanswer
 

putain j'ai eu le doute à la troisième correction !!!!


---------------
trainoo.com, c'est fini
n°1116389
chrisbk
-
Posté le 10-06-2005 à 23:56:49  profilanswer
 

oué enfin, y manque tj des mots [:petrus75]


---------------
NP: HTTP Error 764 Stupid coder found
n°1116390
nraynaud
lol
Posté le 10-06-2005 à 23:57:59  profilanswer
 

chrisbk a écrit :

oué enfin, y manque tj des mots [:petrus75]


[:pingouino] j'aurai mieux fait d'aller me saouler je crois, je vois pas.


---------------
trainoo.com, c'est fini
n°1116394
chrisbk
-
Posté le 11-06-2005 à 00:03:14  profilanswer
 

"...Je même pour les exception issues..."


---------------
NP: HTTP Error 764 Stupid coder found
mood
Publicité
Posté le 11-06-2005 à 00:03:14  profilanswer
 

n°1116398
nraynaud
lol
Posté le 11-06-2005 à 00:04:37  profilanswer
 

il doit manquer "me branle" [:pingouino]


---------------
trainoo.com, c'est fini
n°1116444
Jubijub
Parce que je le VD bien
Posté le 11-06-2005 à 01:30:23  profilanswer
 

lol ....une vrai explication nraynaud ca.... :)


---------------
Jubi Photos : Flickr - 500px
n°1205555
charly007
Posté le 22-09-2005 à 21:54:11  profilanswer
 

Je voudrais votre avis sur la manière de gérer try/catch et test du null.
Quel est le meilleur code entre les deux suivants (la différence est dans le finally) :

Code :
  1. try {
  2.             c = d.getConnection();
  3.             Statement s = c.createStatement();
  4.             s.execute(req);
  5.         } catch (SQLException e) {
  6.             // Traitement
  7.         } finally {
  8.             try {
  9.                 if (c != null) {
  10.                     c.close();
  11.                 }
  12.             } catch (SQLException e) {
  13.             }
  14.         }


Code :
  1. try {
  2.             c = d.getConnection();
  3.             Statement s = c.createStatement();
  4.             s.execute(req);
  5.         } catch (SQLException e) {
  6.             // Traitement
  7.         } finally {
  8.             if (c != null) {
  9.                 try {
  10.                     c.close();
  11.                 } catch (SQLException e) {
  12.                 }
  13.             }
  14.         }


Merci.

Message cité 1 fois
Message édité par charly007 le 22-09-2005 à 21:56:12
n°1205576
souk
Tourist
Posté le 22-09-2005 à 22:23:17  profilanswer
 

il n'y a aucune difference, dans les deux tu ne fermes pas ton Statement [:pingouino]

n°1205599
nraynaud
lol
Posté le 22-09-2005 à 22:39:18  profilanswer
 

charly007 a écrit :

Je voudrais votre avis sur la manière de gérer try/catch et test du null.
Quel est le meilleur code entre les deux suivants (la différence est dans le finally) :

Code :
  1. try {
  2.             c = d.getConnection();
  3.             Statement s = c.createStatement();
  4.             s.execute(req);
  5.         } catch (SQLException e) {
  6.             // Traitement
  7.         } finally {
  8.             try {
  9.                 if (c != null) {
  10.                     c.close();
  11.                 }
  12.             } catch (SQLException e) {
  13.             }
  14.         }


Code :
  1. try {
  2.             c = d.getConnection();
  3.             Statement s = c.createStatement();
  4.             s.execute(req);
  5.         } catch (SQLException e) {
  6.             // Traitement
  7.         } finally {
  8.             if (c != null) {
  9.                 try {
  10.                     c.close();
  11.                 } catch (SQLException e) {
  12.                 }
  13.             }
  14.         }


Merci.


C'est une grave erreur que tu as commise, l'ouverture de la ressource externe doit se trouver à l'extérieur du try qui va la fermer :
 

Code :
  1. c = d.getConnection();
  2.         try {
  3.             Statement s = c.createStatement();
  4.             s.execute(req);
  5.         } catch (SQLException e) {
  6.             // Traitement
  7.         } finally {
  8.            if (c != null) {
  9.               c.close();
  10.         }


 
quand au deuxième try, je ne boufferai pas l'exception, mais balancerai une RuntimeException wrappant la SQLException, parce si un close foire, c'est que l'heure est *vraiment* très grave !!!

n°1205631
charly007
Posté le 22-09-2005 à 23:30:15  profilanswer
 

nraynaud a écrit :

C'est une grave erreur que tu as commise, l'ouverture de la ressource externe doit se trouver à l'extérieur du try qui va la fermer :
 

Code :
  1. c = d.getConnection();
  2.         try {
  3.             Statement s = c.createStatement();
  4.             s.execute(req);
  5.         } catch (SQLException e) {
  6.             // Traitement
  7.         } finally {
  8.            if (c != null) {
  9.               c.close();
  10.         }


 


Mais getConnection() peut lever SQLException.  :??:  
De plus, tu as supprimé le try/catch pour c.close().  :??:
 
Quant au 2e try, je ne voulais pas parler de ça particulièrement, mais merci du conseil.

Message cité 1 fois
Message édité par charly007 le 22-09-2005 à 23:32:24
n°1205634
charly007
Posté le 22-09-2005 à 23:39:49  profilanswer
 

souk a écrit :

il n'y a aucune difference, dans les deux tu ne fermes pas ton Statement [:pingouino]


J'ai voulu faire simple, en pratique je le ferme. Mais il parait que la fermeture de la connexion entraîne la fermeture du statement.  :??:


Message édité par charly007 le 22-09-2005 à 23:40:05
n°1205675
nraynaud
lol
Posté le 23-09-2005 à 08:29:24  profilanswer
 

charly007 a écrit :

Mais getConnection() peut lever SQLException.  :??:  
De plus, tu as supprimé le try/catch pour c.close().  :??:
 
Quant au 2e try, je ne voulais pas parler de ça particulièrement, mais merci du conseil.


oui, j'y ai repensé dans le métro après.
 

Code :
  1. try {
  2.      c = d.getConnection();
  3.              try {
  4.    
  5.                  Statement s = c.createStatement();
  6.                  s.execute(req);
  7.              } catch (SQLException e) {
  8.                  // Traitement
  9.              } finally {
  10.                    c.close();
  11.              }
  12. } catch (SQLException e) {
  13.   throw new RuntimeException(e);
  14. }


en fait, il n'existe aucune raison valable pour que c soit null, donc pas la peine de tester. Si jamais il était null, ce serait une erreur majeure -> le comportement par défaut du système est de tout arrêter.


---------------
trainoo.com, c'est fini
n°1205720
charly007
Posté le 23-09-2005 à 09:54:56  profilanswer
 

OK, mais comment tu justifies

Citation :


l'ouverture de la ressource externe doit se trouver à l'extérieur du try qui va la fermer


?

n°1205725
chrisbk
-
Posté le 23-09-2005 à 09:58:18  profilanswer
 

charly007 a écrit :

OK, mais comment tu justifies

Citation :


l'ouverture de la ressource externe doit se trouver à l'extérieur du try qui va la fermer


?


 
bin si c'est la creation qui fait leve une exception, tu vas te trouver a faire un close() dans le catch sur un truc non initalisé (ta comparaison sur null sera pas tjs possible/valide)

n°1205731
nraynaud
lol
Posté le 23-09-2005 à 10:02:33  profilanswer
 

voiloù, on ne ferme pas un truc qui ne s'est pas ouvert.
 
Et dans l'autre sens, si c'est toi qui programme un système qui doit s'ouvrir et se fermer, si tu ne peux pas ouvrir la ressource dans le open(), tu dois tout remettre en ordre avant de lancer ton exception indiquant l'échec de l'ouverture.


---------------
trainoo.com, c'est fini
n°1205738
charly007
Posté le 23-09-2005 à 10:11:53  profilanswer
 

chrisbk a écrit :

bin si c'est la creation qui fait leve une exception, tu vas te trouver a faire un close() dans le catch sur un truc non initalisé


C'est pour ça que je testais le null.

chrisbk a écrit :


(ta comparaison sur null sera pas tjs possible/valide)


Comment ça ?  :D

n°1205739
chrisbk
-
Posté le 23-09-2005 à 10:13:14  profilanswer
 

bin dans ton exemple je ne sais pas ce qu'il y a dans ta variable 'c' avant ton d.getConnection()

n°1205741
charly007
Posté le 23-09-2005 à 10:23:07  profilanswer
 

chrisbk a écrit :

bin dans ton exemple je ne sais pas ce qu'il y a dans ta variable 'c' avant ton d.getConnection()


null  :whistle:  
Bon OK, je vais me faire allumer parce que je n'ai pas mis tout le code. Je ne voulais pas mettre du code que je pensais inutile.
En l'occurrence, ça serait :

Code :
  1. DataSource d;
  2. Connection c = null;
  3. try {
  4.             c = d.getConnection();
  5.             Statement s = c.createStatement();
  6.             s.execute(req);
  7.         } catch (SQLException e) {
  8.             // Traitement  
  9.         } finally {
  10.             if (c != null) {
  11.                 try {
  12.                     c.close();
  13.                 } catch (SQLException e) {
  14.                 }
  15.             }
  16.         }


 
Tous vos conseils m'interloquent. Je vois pas mal de pages qui conseillent de faire comme dans mon premier post. Par exemple :
http://forum.java.sun.com/thread.j [...] &tstart=90
 

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Suivante

Aller à :
Ajouter une réponse
 

Sujets relatifs
Tuto sur KIXun pattern pour les Exceptions?
Je recherche un tuto pour creer une galerie photosProtection d'images par htaccess mais avec exceptions
Les threads et les exceptionsrecherche tuto pour programmation Temps Réel
Tuto ressourceRecherche sources et tuto
Gestion effective des exceptions[VB.net] Je cherche un tuto rigoureux
Plus de sujets relatifs à : [Topic tuto] Les exceptions


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)