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

  FORUM HardWare.fr
  Programmation
  Java

  Rattraper une exception qui n'en est pas une

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Rattraper une exception qui n'en est pas une

n°686779
Predicator
Posté le 29-03-2004 à 18:27:38  profilanswer
 

Salut, je voudrais savoir si vous savez comment rattraper une erreur qui vient d'un driver jdbc...
 

Code :
  1. Backend start-up failed: FATAL:  Sorry, too many clients already
  2. at org.postgresql.jdbc1.AbstractJdbc1Connection.openConnection(AbstractJdbc1Connection.java:306)
  3. at org.postgresql.Driver.connect(Driver.java:122)
  4. at java.sql.DriverManager.getConnection(DriverManager.java:512)
  5. at java.sql.DriverManager.getConnection(DriverManager.java:171)
  6. [...]


 
C'est pas une exception, et je ne sais pas comment récupérer un truc comme ça.
je n'ai jamais vu ça avant, et je n'ai rien trouvé en faisant une recherche...
merci d'avance :jap:


Message édité par Predicator le 30-03-2004 à 09:21:26
mood
Publicité
Posté le 29-03-2004 à 18:27:38  profilanswer
 

n°686810
kadreg
profil: Utilisateur
Posté le 29-03-2004 à 19:26:57  profilanswer
 

Rhoooo, il y a un goret qui a mis un exit après avoir fait un stacktrace :o


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°686814
benou
Posté le 29-03-2004 à 19:36:31  profilanswer
 

j'ai rien compris ...


---------------
ma vie, mon oeuvre - HomePlayer
n°686840
nraynaud
lol
Posté le 29-03-2004 à 20:16:13  profilanswer
 

benou a écrit :

j'ai rien compris ...

Je pense que monsieur confond la chaîne de cause des exceptions et les noms des méthodes dans la tacktrace. Ou alors il a désigné l'étage ou il veut arrêter (catch) la remontée ou débugger.
 
Oué en fait j'en sais pas plus que toi ...


Message édité par nraynaud le 29-03-2004 à 20:17:02

---------------
trainoo.com, c'est fini
n°687054
Predicator
Posté le 30-03-2004 à 09:19:04  profilanswer
 

- y'a pas de exit
- je ne confonds rien
 
ce truc apparait dans aucun stacktrace... il ne rentre dans aucun cas de catch, c'est un message d'erreur que je reçois lorsque je fais appel au driver jdbc et qu'il ne peut pas ouvrir de connexion.
 
si c'était une simple exception, je pense que je saurais comment la récupérer :o
 
donc comme c'est pas une exception, je ne sais pas comment récupérer cette erreur... et j'aimerais bien pouvoir le faire quand même
 
si c'est le premier code qui vous gêne, ne vous en occupez pas, il est juste là pour servir de témoin [:spamafote]  
d'ailleurs je vais l'enlever, hop.


Message édité par Predicator le 30-03-2004 à 09:20:42
n°687160
machinbidu​le1974
Do you feel lucky, punk ?
Posté le 30-03-2004 à 11:06:22  profilanswer
 

Le pb vient pas du fait que le coder du driver jdbc à fait un e.printStackTrace(System.err) puis n'a pas relancé l'exception en l'enveloppant éventuellement dans une SQLException ?

n°687165
kadreg
profil: Utilisateur
Posté le 30-03-2004 à 11:08:40  profilanswer
 

C'est quelle version du driver jdbc, histoire d'aller  lire les sources ?


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°687224
the real m​oins moins
Posté le 30-03-2004 à 12:09:20  profilanswer
 

http://java.sun.com/j2se/1.4.2/doc [...] rning.html
 
maintenant, c'est bizarre qu'il foute un warning et loggent un FATAL, mais bon


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°687436
benou
Posté le 30-03-2004 à 15:26:43  profilanswer
 

the real moins moins a écrit :

http://java.sun.com/j2se/1.4.2/doc [...] rning.html
 
maintenant, c'est bizarre qu'il foute un warning et loggent un FATAL, mais bon


le bon lien serait plutot ca nan ?  http://java.sun.com/j2se/1.4.2/doc [...] Warnings()
Mais c'est assez surprenant qu'ils stacktaracent (;)) une exception au sein du driver jdbc ....


---------------
ma vie, mon oeuvre - HomePlayer
n°687441
the real m​oins moins
Posté le 30-03-2004 à 15:29:47  profilanswer
 

benou a écrit :


le bon lien serait plutot ca nan ?  

bah euh sur la doc de SQLWarning il est écrit ce que c'est et comment les retrouver, et y'a un @see Connection.getWarnings donc bon [:spamafote]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
mood
Publicité
Posté le 30-03-2004 à 15:29:47  profilanswer
 

n°687453
benou
Posté le 30-03-2004 à 15:35:37  profilanswer
 

the real moins moins a écrit :

bah euh sur la doc de SQLWarning il est écrit ce que c'est et comment les retrouver, et y'a un @see Connection.getWarnings donc bon [:spamafote]


ouais, mais en lisant rapidement une première fois j'ai loupé l'info et j'ai cru que tu avais mal compris la question ... je précisais juste un peu les choses ...
 
Qu'est ce que t'en penses du stacktrace en dur dans le driver ? ca te parait pas louche à toi ?


---------------
ma vie, mon oeuvre - HomePlayer
n°687455
the real m​oins moins
Posté le 30-03-2004 à 15:36:37  profilanswer
 

benou a écrit :


ouais, mais en lisant rapidement une première fois j'ai loupé l'info et j'ai cru que tu avais mal compris la question ... je précisais juste un peu les choses ...
 
Qu'est ce que t'en penses du stacktrace en dur dans le driver ? ca te parait pas louche à toi ?

si [:spamafote]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°687466
nraynaud
lol
Posté le 30-03-2004 à 15:45:39  profilanswer
 

Code :
  1. try {
  2. ...
  3. } catch (Exception e) {
  4. e.printStackTrace();
  5. }

J'en vois tous les jours perso ...


---------------
trainoo.com, c'est fini
n°687478
the real m​oins moins
Posté le 30-03-2004 à 15:50:03  profilanswer
 

ha boooon c'est comme ça qu'on imprime une stacktrace!? on savait pas tien! [:everything4free]
 
j'en vois souvent aussi, mais bcp plus rarement dans du code de production


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°687530
Predicator
Posté le 30-03-2004 à 16:25:17  profilanswer
 

la version du jdbc est un jdbc pour postgres : pg73jdbc3.jar
version 3 pour postgresql 7.3
 
pour la portion de code suivante :
 

Code :
  1. } catch (SQLException e6) {
  2. // apparemment, il n'y a plus de place
  3. System.out.println(">>>>> avant le printStackTrace()" );
  4. e6.printStackTrace();
  5. System.out.println(">>>>> après le printStackTrace()" );


 
j'ai le retour suivant :
 

Code :
  1. >>>>> avant le printStackTrace()
  2. Backend start-up failed: FATAL:  Sorry, too many clients already
  3.         at org.postgresql.jdbc1.AbstractJdbc1Connection.openConnection(AbstractJdbc1Connection.java:306)
  4.         at org.postgresql.Driver.connect(Driver.java:122)
  5.         at java.sql.DriverManager.getConnection(DriverManager.java:512)
  6.         at java.sql.DriverManager.getConnection(DriverManager.java:171)
  7.         at imadoc.annotcoll.serveur.admin.Connexions.<init>(Connexions.java:49)
  8.         at imadoc.annotcoll.serveur.annot.ServeurConnexionsListener.<init>(ServeurConnexionsListener.java:31)
  9.         at imadoc.annotcoll.serveur.admin.Servelette.doPost(Servelette.java:269)
  10.         at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
  11.         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
  12.         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
  13.         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
  14.         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
  15.         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
  16.         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
  17.         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
  18.         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
  19.         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
  20.         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
  21.         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
  22.         at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2417)
  23.         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
  24.         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
  25.         at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
  26.         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
  27.         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
  28.         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
  29.         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
  30.         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
  31.         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
  32.         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
  33.         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
  34.         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
  35.         at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:193)
  36.         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:781)
  37.         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:549)
  38.         at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:589)
  39.         at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:666)
  40.         at java.lang.Thread.run(Thread.java:534)
  41. >>>>> après le printStackTrace()


 
c'est donc bien ce que je récupère comme exception, n'en déplaise à mes tracteurs [:spamafote]
et j'ai toujours pas trouvé de solution, mis à part un test sur le message, genre
 

Code :
  1. if (e.toString().indexOf(Sorry, too many clients already) != -1){
  2. ...
  3. }


Message édité par Predicator le 30-03-2004 à 16:27:11
n°687532
lorill
Posté le 30-03-2004 à 16:27:22  profilanswer
 

ben alors tu l'as ton exception :o
c'est quoi le probleme ?

n°687537
the real m​oins moins
Posté le 30-03-2004 à 16:29:38  profilanswer
 

haaa putain !
tout le monde avait compris que ct le driver qui avait imprimé l'exception !?!
 
je vois pas bien pourquoi tu voudrais plus recuperer cette exception là qu'une autre. tu peux pas te connecter, tu peux pas te connecter quoi [:spamafote]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°687546
nraynaud
lol
Posté le 30-03-2004 à 16:33:30  profilanswer
 

the real moins moins a écrit :

bcp plus rarement dans du code de production

c'est bien à ce niveau là que j'ai un doute.


---------------
trainoo.com, c'est fini
n°687548
benou
Posté le 30-03-2004 à 16:35:14  profilanswer
 

predicator a écrit :

il ne rentre dans aucun cas de catch, c'est un message d'erreur que je reçois lorsque je fais appel au driver jdbc et qu'il ne peut pas ouvrir de connexion.
si c'était une simple exception, je pense que je saurais comment la récupérer :o


méga-[:kiki]


---------------
ma vie, mon oeuvre - HomePlayer
n°687555
benou
Posté le 30-03-2004 à 16:44:18  profilanswer
 

nraynaud a écrit :

c'est bien à ce niveau là que j'ai un doute.


nan mais logiquement les API sérieuses ne font pas ce genre de chose. Le driver jdbc postgres fait logiquement partie de cette catégorie ...


---------------
ma vie, mon oeuvre - HomePlayer
n°687569
Predicator
Posté le 30-03-2004 à 16:55:12  profilanswer
 

Citation :

haaa putain !  
tout le monde avait compris que ct le driver qui avait imprimé l'exception !?!


 
j'avais pas compris que vous aviez compris... je croyais que vous gueuliez sur celui qui pose la question avant d'essayer de comprendre, comme le font beaucoup ici [:spamafote]  
gomen :jap:  
 

the real moins moins a écrit :

je vois pas bien pourquoi tu voudrais plus recuperer cette exception là qu'une autre. tu peux pas te connecter, tu peux pas te connecter quoi [:spamafote]


 
justement, ça peut être sympa de prévenir l'utilisateur qu'il ne peut pas se connecter pour l'instant parce qu'il n'y a plus de place... quand le nombre d'utilisateur est limité à 50 pour des raisons de ressources, et que ce nombre est fréquemment atteint, ça peut être utile non ? :sarcastic:


Message édité par Predicator le 30-03-2004 à 17:02:28
n°687571
kadreg
profil: Utilisateur
Posté le 30-03-2004 à 16:56:23  profilanswer
 

benou a écrit :


nan mais logiquement les API sérieuses ne font pas ce genre de chose. Le driver jdbc postgres fait logiquement partie de cette catégorie ...


 
Avec les développements open source, c'est pas toujours sérieux [:spamafote]


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°687574
darklord
You're welcome
Posté le 30-03-2004 à 17:01:19  profilanswer
 

kadreg a écrit :


 
Avec les développements open source, c'est pas toujours sérieux [:spamafote]


 
roooh mais ta gueule avec tes trolls pourris :o

n°687575
darklord
You're welcome
Posté le 30-03-2004 à 17:01:46  profilanswer
 

predicator a écrit :


 
justement, ça peut être sympa de prévenir l'utilisateur qu'il ne peut pas se connecter pour l'instant parce qu'il n'y a plus de place... quand le nombre d'utilisateur est limité à 50 pour des raisons de ressources, et que ce nombre est fréquemment atteint, ça peut être utile non ? :sarcastic:


 
moins moins staÿle [:spamafote]

n°687578
nraynaud
lol
Posté le 30-03-2004 à 17:06:27  profilanswer
 

benou a écrit :


nan mais logiquement les API sérieuses ne font pas ce genre de chose. Le driver jdbc postgres fait logiquement partie de cette catégorie ...

comme j'en vois tous les jours ici, je me doute bien que ça doit aussi être courant ailleur. Je suis même convaincu que certains ont ça dans leurs templates de catch().


---------------
trainoo.com, c'est fini
n°687586
Predicator
Posté le 30-03-2004 à 17:16:19  profilanswer
 

bon ça tourne au pugilas, et puis on est à 300 bornes du problème initial... ma soluce crade marche, donc c'est pas la peine de vous battre pour rien...

n°687588
the real m​oins moins
Posté le 30-03-2004 à 17:19:02  profilanswer
 

DarkLord a écrit :


 
moins moins staÿle [:spamafote]

ben non, tu peux rien faire !
ex.getMessage()
 
Apres, t'es emmerdé parce que le message est en anglais, mais là on en revient a l'eternel probleme de la traduction des messages d'exception, auquel il n'y pas de solution standard


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°687590
the real m​oins moins
Posté le 30-03-2004 à 17:20:12  profilanswer
 

ps: http://java.sun.com/j2se/1.3/docs/ [...] rrorCode()
 
avec le code d'exception spécifique à la db et des fichiers de resources pour les trads des messages qui t'interesse, tu te demerdes[:spamafote]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°687592
Predicator
Posté le 30-03-2004 à 17:25:48  profilanswer
 

the real moins moins a écrit :

ben non, tu peux rien faire !


 
bah si, j'ai fait :o

n°687628
benou
Posté le 30-03-2004 à 17:39:46  profilanswer
 

predicator a écrit :

bon ça tourne au pugilas, et puis on est à 300 bornes du problème initial... ma soluce crade marche, donc c'est pas la peine de vous battre pour rien...


Quelle solution ??
 
Déjà que je comprends pas quel est ton problème ...
 
je cite :  

Citation :

C'est pas une exception, et je ne sais pas comment récupérer un truc comme ça.  


Le fait est que c'est une exception et que tu fais un catch (normal).
 
Donc, c'est quoi ton problème ????


---------------
ma vie, mon oeuvre - HomePlayer
n°687635
the real m​oins moins
Posté le 30-03-2004 à 17:41:46  profilanswer
 

benou a écrit :


Quelle solution ??

if (e.toString().indexOf(Sorry, too many clients already) != -1){

[:kiki]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°687638
lorill
Posté le 30-03-2004 à 17:44:48  profilanswer
 

the real moins moins a écrit :

if (e.toString().indexOf(Sorry, too many clients already) != -1){

[:kiki]

la ou ca va être beau, c'est si le message change a la prochaine release  :jap:

n°687641
kadreg
profil: Utilisateur
Posté le 30-03-2004 à 17:45:33  profilanswer
 

lorill a écrit :

la ou ca va être beau, c'est si le message change a la prochaine release  :jap:  


 
Ca me rapelle un bug du plugin CVS dans eclipse :o


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°687647
lorill
Posté le 30-03-2004 à 17:46:45  profilanswer
 

kadreg a écrit :


Ca me rapelle un bug du plugin CVS dans eclipse :o


ca me rappelle a moi que c'est mal d'utiliser les toString() des nodes en xml au lieu de getNodeValue() :whistle:

n°687651
Predicator
Posté le 30-03-2004 à 17:48:51  profilanswer
 

lorill a écrit :

la ou ca va être beau, c'est si le message change a la prochaine release  :jap:  


 
c'est la dernière release pour postgresql 7.3 :)  
les autres sont pour postgresql 7.4 et 7.5...
je vais essayer de tester avec le getErrorCode, mais vu que c'est nulle part dans la doc du driver, je suis pas sûr qu'ils s'en servent...
 
enfin, à utilisation d'un driver crade, solution crade non ? [:spamafote]  
et puis j'ai mis une tâche pour pas perdre cet endroit de vu... :bounce:

n°687661
benou
Posté le 30-03-2004 à 17:54:16  profilanswer
 

the real moins moins a écrit :

if (e.toString().indexOf(Sorry, too many clients already) != -1){

[:kiki]


j'avais pas vu [:totoz]
 
T'as vérifié que le type excate de l'exception n'est pas une sous exception de SQLException ?


---------------
ma vie, mon oeuvre - HomePlayer
n°687669
the real m​oins moins
Posté le 30-03-2004 à 17:58:44  profilanswer
 

benou a écrit :


j'avais pas vu [:totoz]
 
T'as vérifié que le type excate de l'exception n'est pas une sous exception de SQLException ?  

c'est daill'eurs probablement une PGSQLException


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°700290
pascal34
one point !
Posté le 15-04-2004 à 15:48:54  profilanswer
 

predicator a écrit :

- y'a pas de exit
- je ne confonds rien
 
ce truc apparait dans aucun stacktrace... il ne rentre dans aucun cas de catch, c'est un message d'erreur que je reçois lorsque je fais appel au driver jdbc et qu'il ne peut pas ouvrir de connexion.
 
si c'était une simple exception, je pense que je saurais comment la récupérer :o
 
donc comme c'est pas une exception, je ne sais pas comment récupérer cette erreur... et j'aimerais bien pouvoir le faire quand même
 
si c'est le premier code qui vous gêne, ne vous en occupez pas, il est juste là pour servir de témoin [:spamafote]  
d'ailleurs je vais l'enlever, hop.


 
Essai de catcher un Throwable au lieu de Exception,
c'est un cran au-dessus dans la hiérérchie des classes.
 
En général il faut les laisser passer car c'est des erreurs graves.

n°704840
seabee
Posté le 21-04-2004 à 12:28:44  profilanswer
 

Code :
  1. } catch (SQLException e6) {
  2. System.out.println("Alors là tu vois t'as un problème avec SQL, le problème c'est un truc genre " + e6.getMessage() + " note que le problème il est peut-être en anglais mais que c'est pas grave parce que la majorité des gens ils apprennent l'anglais à l'école. Si t'as un problème en anglais fais-le traduire par tes parents, ils seront content de pouvoir t'aider." );
  3. }


 
= > Pas de problème de maintenance, et respect total de l'utilisateur.

mood
Publicité
Posté le   profilanswer
 


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

  Rattraper une exception qui n'en est pas une

 

Sujets relatifs
[Oracle 8i] UTL_FILE.GET_LINE exception[JAVA] NullPointer Exception : JVM Symantec ???
exception StackOverflowErrorcontrainte d'intégrité, triggers et exception
STL : gestion des exception. appel explicite?Levée d'exception & singleton
Exception in thread "main" org.omg.CORBA.COMM_FAILUREDebogger, et suivi de trace d'exception
Gerer les exception avec JNIException System.TypeLoadException
Plus de sujets relatifs à : Rattraper une exception qui n'en est pas une


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