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

  FORUM HardWare.fr
  Programmation
  Java

  Les exceptions, y a une truc que j'comprend pas.

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Les exceptions, y a une truc que j'comprend pas.

n°175185
El_gringo
Posté le 11-07-2002 à 15:21:43  profilanswer
 

Pourquoi dans certain cas, on est pas obligé par le compilateur de catcher certaines exceptions !?
genre, ça :

Code :
  1. public String getLabel (String id) throws MissingResourceException {
  2.         if (rb != null) {
  3.             String label;
  4.             try {
  5.                 label = rb.getString (id);
  6.                 return label;
  7.             } catch (NullPointerException npe) {
  8.                 return new String ();
  9.             }
  10.         }
  11.         return new String ();
  12.     }


ça passe à la compile, alors que getString peut lancer aussi des ClassCastException.
Comment ça se fait que dans certain cas, le compilateur obligé à catcher ou transmettre une exception, et dans d'autres non.
Dans l'exemple que g donné, je ne catch, ni ne transmet la ClassCastException. Que deviendrait cette exception si elle se produisait ?


Message édité par El_gringo le 11-07-2002 à 15:22:40
mood
Publicité
Posté le 11-07-2002 à 15:21:43  profilanswer
 

n°175232
El_gringo
Posté le 11-07-2002 à 15:57:58  profilanswer
 

Daaaaaark, tu me manque déja, t'en vas pas ! :sweat:

n°175248
veryfree
Posté le 11-07-2002 à 16:06:57  profilanswer
 

el_gringo a écrit a écrit :

Pourquoi dans certain cas, on est pas obligé par le compilateur de catcher certaines exceptions !?
genre, ça :

Code :
  1. public String getLabel (String id) throws MissingResourceException {
  2.         if (rb != null) {
  3.             String label;
  4.             try {
  5.                 label = rb.getString (id);
  6.                 return label;
  7.             } catch (NullPointerException npe) {
  8.                 return new String ();
  9.             }
  10.         }
  11.         return new String ();
  12.     }


ça passe à la compile, alors que getString peut lancer aussi des ClassCastException.
Comment ça se fait que dans certain cas, le compilateur obligé à catcher ou transmettre une exception, et dans d'autres non.
Dans l'exemple que g donné, je ne catch, ni ne transmet la ClassCastException. Que deviendrait cette exception si elle se produisait ?




 
le throws MissingResourceException { signifie que lorsque tu fera apel a la fonction "getLabel(String id)" ben tu devras l entourer d un block try catch car elle pe soulever une exception
 
avec l experience tu comprendra l interet de declaré une methode throws qqChose


Message édité par veryfree le 11-07-2002 à 16:09:17
n°175252
--greg--
Posté le 11-07-2002 à 16:09:50  profilanswer
 

el_gringo a écrit a écrit :

Daaaaaark, tu me manque déja, t'en vas pas ! :sweat:  



fous lui la paix bon sang

n°175263
gfive
Posté le 11-07-2002 à 16:17:36  profilanswer
 

Le compilateur ne cherche pas focrément à catcher tout ce qui est runtime exception.
 
Donc, les ClassCastException, NullPointerException, etc, ne sont pas catchées (sinon, dès que tu fais objet.toto(), ça pourrait lancer une NullPointerException...
 
C'estla JVM qui s'en occupe.

n°175267
El_gringo
Posté le 11-07-2002 à 16:22:33  profilanswer
 

veryfree a écrit a écrit :

 
 
le throws MissingResourceException { signifie que lorsque tu fera apel a la fonction "getLabel(String id)" ben tu devras l entourer d un block try catch car elle pe soulever une exception
 
avec l experience tu comprendra l interet de declaré une methode throws qqChose




 
heu, ça, même sans tellement d'expérience, j'avais déja compris, merci !:D
Par contre, g bien l'impression que t'as pas compris ma question.

n°175271
El_gringo
Posté le 11-07-2002 à 16:23:21  profilanswer
 

--greg-- a écrit a écrit :

fous lui la paix bon sang




 
Mais !? on t'as demandé de faire le justicier toi !?
Si ça l'emmerde que je l'appel il est assez grand (et assez franc) pour me le dire.

n°175274
El_gringo
Posté le 11-07-2002 à 16:23:59  profilanswer
 

gfive a écrit a écrit :

Le compilateur ne cherche pas focrément à catcher tout ce qui est runtime exception.
 
Donc, les ClassCastException, NullPointerException, etc, ne sont pas catchées (sinon, dès que tu fais objet.toto(), ça pourrait lancer une NullPointerException...
 
C'estla JVM qui s'en occupe.




 
...Merci ! (dsl pr le post d'avant, ms c ce que j'pense. J'peux pas m'empêcher de le dire ! :D)

n°175276
--greg--
Posté le 11-07-2002 à 16:24:26  profilanswer
 

el_gringo a écrit a écrit :

 
 
Mais !? on t'as demandé de faire le justicier toi !?
Si ça l'emmerde que je l'appel il est assez grand (et assez franc) pour me le dire.



je me le suis demandé tout seul!
et je crois qu'il te l'a deja dit, indirectement:)


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
n°175279
gfive
Posté le 11-07-2002 à 16:26:16  profilanswer
 

Et, je pars en vacances vendredi, moi aussi! :D:D
Pour 2 semaines! :p

mood
Publicité
Posté le 11-07-2002 à 16:26:16  profilanswer
 

n°175283
El_gringo
Posté le 11-07-2002 à 16:30:41  profilanswer
 

gfive a écrit a écrit :

Et, je pars en vacances vendredi, moi aussi! :D:D
Pour 2 semaines! :p




 
Hé, mais 'faut vous calmer les jeunes ! STOP, on arrête là, allez, apparement, on peut plus rien faire pour gfive et Dark, mais on arrête la casse. JE VEUX PLUS EN ENTENDRE UN SUCEPTIBLE DE M'AIDER EN JAVA ME DIRE QU'Y PART EN VACANCES.
Compris !? :D
Non mais c vrai quoi ! merde...

n°175289
veryfree
Posté le 11-07-2002 à 16:38:02  profilanswer
 

el_gringo a écrit a écrit :

 
 
Hé, mais 'faut vous calmer les jeunes ! STOP, on arrête là, allez, apparement, on peut plus rien faire pour gfive et Dark, mais on arrête la casse. JE VEUX PLUS EN ENTENDRE UN SUCEPTIBLE DE M'AIDER EN JAVA ME DIRE QU'Y PART EN VACANCES.
Compris !? :D
Non mais c vrai quoi ! merde...




 
bon ben désolé si j ai compris a coté
mais jme casse bientot ca fera des vacance au autre forumeur

n°175292
- Renaud -
Posté le 11-07-2002 à 16:42:37  profilanswer
 

Ne trouvant pas les expliquations tres claires, je resume:
 
Il y a 2 sortes d'exceptions:
    - celles heritant de RuntimeException (qui herite de Exception), le code n'est pas oblige' de les traiter. Par exemple la "division par zero" est runtime, tu peux choisir de l'ignorer, mais si tu l'ignore completement et qu'elle arrive, tu t'arretes.
 
    - celles heritant d'Exception (sans passer par RuntimeException). le code est oblige' de les traiter (les catcher ou les propager).

n°175295
gfive
Posté le 11-07-2002 à 16:48:28  profilanswer
 

Bien vu! :)

n°175298
El_gringo
Posté le 11-07-2002 à 16:50:20  profilanswer
 

- Renaud - a écrit a écrit :

Ne trouvant pas les expliquations tres claires, je resume:
 
Il y a 2 sortes d'exceptions:
    - celles heritant de RuntimeException (qui herite de Exception), le code n'est pas oblige' de les traiter. Par exemple la "division par zero" est runtime, tu peux choisir de l'ignorer, mais si tu l'ignore completement et qu'elle arrive, tu t'arretes.
 
    - celles heritant d'Exception (sans passer par RuntimeException). le code est oblige' de les traiter (les catcher ou les propager).




 
Merci Renaud. On te voit pas souvent ms t'as l'air de savoir de quoi tu parles.
Autre chose : si je traite pas un Runtime exception, j'imagine que l'exception va s'afficher quand même dans mon navigateur si elle se produit (elle va s'afficher à la brute, ss forme d'une Erreur 500). Tu crois pas !?


Message édité par El_gringo le 11-07-2002 à 16:51:44
n°175310
--greg--
Posté le 11-07-2002 à 17:01:20  profilanswer
 

el_gringo a écrit a écrit :

 
 
Merci Renaud. On te voit pas souvent ms t'as l'air de savoir de quoi tu parles.
Autre chose : si je traite pas un Runtime exception, j'imagine que l'exception va s'afficher quand même dans mon navigateur si elle se produit (elle va s'afficher à la brute, ss forme d'une Erreur 500). Tu crois pas !?




oui
mais en jsp (c bien de ça que tu parles non?) tu peux rediriger vers une page d'erreur avec ça comme directive en haut de ta page:
<%@page errorPage="l'urlrelativedetapaged'erreur.jsp" %>
 
et dans ta page ou tu geres les erreurs tu mets
<%@page iserrorpage=true %>
(et là tu peux utiliser "exception" (je crois) qui est l'objet Exception qui à été lancé


Message édité par --greg-- le 11-07-2002 à 17:04:23

---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
n°175313
El_gringo
Posté le 11-07-2002 à 17:08:16  profilanswer
 

--greg-- a écrit a écrit :

 
oui
mais en jsp (c bien de ça que tu parles non?) tu peux rediriger vers une page d'erreur avec ça comme directive en haut de ta page:
<%@page errorPage="l'urlrelativedetapaged'erreur.jsp" %>
 
et dans ta page ou tu geres les erreurs tu mets
<%@page iserrorpage=true %>
(et là tu peux utiliser "exception" (je crois) qui est l'objet Exception qui à été lancé




 
Merde, je suis lourd, g oublié de dire que je parle pour le jsp/servlet
Donc, ouais, ce que tu m'as dit pr rediriger les erreurs, j'avais vu, merci.
Par contre, ça, ça va si l'erreur se produit ds un jsp, ms si ça se produit ds une servlet !? tu connais un moyen de faire exactement la même redirection vers cette page isErrorPage qd une exception non catchée se produit !?

n°175316
gfive
Posté le 11-07-2002 à 17:17:06  profilanswer
 

bah, nomalement, les moteurs de servlets gèrent ça..Ils te mettent la ptrace de l'exception dans les logs et tout....

n°175319
--greg--
Posté le 11-07-2002 à 17:27:53  profilanswer
 

gfive a écrit a écrit :

bah, nomalement, les moteurs de servlets gèrent ça..Ils te mettent la ptrace de l'exception dans les logs et tout....



oué mais avec juste des servlets tu peux pas (à ma connaissance) rediriger la requete vers une jsp qui gere l'erreur (par exemple en affichant un message "userfriendly" au lieu de la belle trace)
...


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
n°175325
gfive
Posté le 11-07-2002 à 17:37:04  profilanswer
 

Euh....Bah, à la limite, tu fais une super-servlet dont héritent toutes tes servlets, et qui fait un gros try  { .... } catch(Throwable t) { affichage de ta jolie page }
 
et c bon.

n°175327
--greg--
Posté le 11-07-2002 à 17:38:40  profilanswer
 

gfive a écrit a écrit :

Euh....Bah, à la limite, tu fais une super-servlet dont héritent toutes tes servlets, et qui fait un gros try  { .... } catch(Throwable t) { affichage de ta jolie page }
 
et c bon.




euh...
ouais...
moi ça ira hein :) je catche les erreurs là ou elles peuvent arriver et je gere au cas par cas:)
 


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
n°175336
gfive
Posté le 11-07-2002 à 17:42:39  profilanswer
 

Ouais, enfin, le coup du try{ } catch de la mort, là, c'est justement pour gérer les quelques cas à la con qu'iul va fatalement te rester, pour évioter que l'utilisateur se retrouve comme deux ronds de flanc devant une erreur 500..Et toi, tu peux te faire un joli display de la trace, pour savoir ce qui se passe....genre tu fais une page :  
 
"oooh, la grosse bouse!!"
 
Merci d'envoyer le texte qui suit à ---greg---@---greg---.com
 
---------------------------------------
java.lang.NullPointerException
     ...
---------------------------------------

n°175340
--greg--
Posté le 11-07-2002 à 17:49:07  profilanswer
 

gfive a écrit a écrit :

Ouais, enfin, le coup du try{ } catch de la mort, là, c'est justement pour gérer les quelques cas à la con qu'iul va fatalement te rester, pour évioter que l'utilisateur se retrouve comme deux ronds de flanc devant une erreur 500..Et toi, tu peux te faire un joli display de la trace, pour savoir ce qui se passe....genre tu fais une page :  
 
"oooh, la grosse bouse!!"
 
Merci d'envoyer le texte qui suit à ---greg---@---greg---.com
 
---------------------------------------
java.lang.NullPointerException
     ...
---------------------------------------




hmmmm oui peut etre


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
n°175532
El_gringo
Posté le 12-07-2002 à 08:39:57  profilanswer
 

--greg-- a écrit a écrit :

 
euh...
ouais...
moi ça ira hein :) je catche les erreurs là ou elles peuvent arriver et je gere au cas par cas:)




 
me dis pas que tu catch tous les NullPointersException !?

n°175578
--greg--
Posté le 12-07-2002 à 10:37:48  profilanswer
 

el_gringo a écrit a écrit :

 
 
me dis pas que tu catch tous les NullPointersException !?




ben non, je m'arrange pour qu'il n'y en ait pas
si une classe est susceptible de lancer un nullpointerexception c'est une merde, et si j'applique une methode qqconque sur un objet qui est susceptible d'etre null sans m'assurer qu'il ne l'est pas, c'est moi la merde
:D


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
n°175620
gfive
Posté le 12-07-2002 à 11:11:27  profilanswer
 

Ouais, enfin, faut pas pousser, non plus, les bugs, ça arrive, et prévoir un machin pour pouvoir les détecter, c'est aussi un critère pour déterminer qui est une merde! :D:D

n°175640
--greg--
Posté le 12-07-2002 à 11:26:24  profilanswer
 

gfive a écrit a écrit :

Ouais, enfin, faut pas pousser, non plus, les bugs, ça arrive, et prévoir un machin pour pouvoir les détecter, c'est aussi un critère pour déterminer qui est une merde! :D:D



ha ben oui, ce que je disais c'était sans compter le cas "bug", bien sur :)))
quand je disais "... qui est susceptible d'être null..." ça voulait dire "... qui dans le cas de l'application PEUT etre null sans que ce soit considéré comme un bug", du genre un parametre d'une URL qui n'est pas necessairement là.
on est d'accord?


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
n°175647
gfive
Posté le 12-07-2002 à 11:33:44  profilanswer
 

Vu l'imminence des vacances, je vais pas me lancer des débats....
 
Surtout quand je suis d'accord!:D

n°175650
lorill
Posté le 12-07-2002 à 11:36:45  profilanswer
 

gfive a écrit a écrit :

Vu l'imminence des vacances, je vais pas me lancer des débats....
 
Surtout quand je suis d'accord!:D




Bon, va falloir que je m'y mette alors...
 
Je ne suis pas DU TOUT d'accord avec vous

n°175653
--greg--
Posté le 12-07-2002 à 11:40:01  profilanswer
 

gfive a écrit a écrit :

Vu l'imminence des vacances, je vais pas me lancer des débats....
 
Surtout quand je suis d'accord!:D



:D


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
n°175654
--greg--
Posté le 12-07-2002 à 11:40:12  profilanswer
 

lorill a écrit a écrit :

 
Bon, va falloir que je m'y mette alors...
 
Je ne suis pas DU TOUT d'accord avec vous



vi...?


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
n°175657
gfive
Posté le 12-07-2002 à 11:41:45  profilanswer
 

lorill a écrit a écrit :

 
Bon, va falloir que je m'y mette alors...
 
Je ne suis pas DU TOUT d'accord avec vous




 
Je m'en fous...j'ai vacances...et je te merde, na! :D

n°175658
lorill
Posté le 12-07-2002 à 11:41:59  profilanswer
 

--greg-- a écrit a écrit :

vi...?




 
non, rien.

n°175668
--greg--
Posté le 12-07-2002 à 11:54:00  profilanswer
 

lorill a écrit a écrit :

 
 
non, rien.



[:biscuiteur]  
 
 
 :D


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
n°175678
gfive
Posté le 12-07-2002 à 12:04:23  profilanswer
 

C'est n'importe quoi, ce topic! :D

n°175755
El_gringo
Posté le 12-07-2002 à 14:38:34  profilanswer
 

gfive a écrit a écrit :

C'est n'importe quoi, ce topic! :D




 
Merci, c gentil de m'avoir répondu, et du coup, je vous offre mon topic. vous pouvez y raconter n'importe quoi, le faire virer sur les transexuels du pôle nord qui taille leurs string dans de la peau de phoque, ou n'importe quoi d'autre. Il est à vous ce topic. c pas gentil ça !? :D

n°179419
darklord
You're welcome
Posté le 21-07-2002 à 15:41:33  profilanswer
 

--greg-- a écrit a écrit :

 
ben non, je m'arrange pour qu'il n'y en ait pas
si une classe est susceptible de lancer un nullpointerexception c'est une merde, et si j'applique une methode qqconque sur un objet qui est susceptible d'etre null sans m'assurer qu'il ne l'est pas, c'est moi la merde
:D




 
 [:xp1700]


---------------
Just because you feel good does not make you right
mood
Publicité
Posté le   profilanswer
 


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

  Les exceptions, y a une truc que j'comprend pas.

 

Sujets relatifs
Heberger un forum PHP mais pas un truc gratoserreur en Vbscript je ne comprend pas du tout pourquoi!!
[open gl] je ne comprend pas mes erreurs pour ma geosphère (tjs pas)[install VB6 ] - truc de ouffffffffffffffff
HELPPP je comprend pas le javascript!Un truc embêtant avec un lien.....
J'comprend pas[DOS truc naze mais qui fait ièch] Faire un \ en qwerty sous DOS
[PHP] Truc tout con ![Java] pb avec les Exceptions
Plus de sujets relatifs à : Les exceptions, y a une truc que j'comprend pas.


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