Est-ce que bloc 3 est exécuté dans tous les cas, y compris si bloc2 fait un
rethrow ? A priori je dirais non... Ai-je tord ? Est-ce "mal" de faire un
throw dans un bloc catch ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Laurent Bossavit
Est-ce que bloc 3 est exécuté dans tous les cas, y compris si bloc2 fait un rethrow ?
Oui.
A priori je dirais non... Ai-je tord ?
Oui. :)
Est-ce "mal" de faire un throw dans un bloc catch ?
Non.
Ce qui est "mal", et qu'il faut éviter, c'est d'inclure un "return", "break" ou "continue" dans un bloc "finally". Précisément parce que si le bloc "finally" est appelé à la suite d'une exception relancée, le return (etc.) va faire repartir sur un traitement normal, et plus un traitement d'exception.
Cf. http://pclt.cis.yale.edu/pclt/exceptions.htm
Laurent http://bossavit.com/thoughts/
Est-ce que bloc 3 est exécuté dans tous les cas, y compris si bloc2 fait un
rethrow ?
Oui.
A priori je dirais non... Ai-je tord ?
Oui. :)
Est-ce "mal" de faire un throw dans un bloc catch ?
Non.
Ce qui est "mal", et qu'il faut éviter, c'est d'inclure un "return",
"break" ou "continue" dans un bloc "finally". Précisément parce que si
le bloc "finally" est appelé à la suite d'une exception relancée, le
return (etc.) va faire repartir sur un traitement normal, et plus un
traitement d'exception.
Est-ce que bloc 3 est exécuté dans tous les cas, y compris si bloc2 fait un rethrow ?
Oui.
A priori je dirais non... Ai-je tord ?
Oui. :)
Est-ce "mal" de faire un throw dans un bloc catch ?
Non.
Ce qui est "mal", et qu'il faut éviter, c'est d'inclure un "return", "break" ou "continue" dans un bloc "finally". Précisément parce que si le bloc "finally" est appelé à la suite d'une exception relancée, le return (etc.) va faire repartir sur un traitement normal, et plus un traitement d'exception.
Est-ce que bloc 3 est exécuté dans tous les cas, y compris si bloc2 fait un rethrow ? A priori je dirais non... Ai-je tord ? Est-ce "mal" de faire un throw dans un bloc catch ?
Merci
Pour ce genre de questions très précises, un coup de recherche plaintext dans les specs du langage, est très efficace: http://java.sun.com/docs/books/jls/index.html
Plus précisemment dans ton cas: http://java.sun.com/docs/books/jls/second_edition/html/exceptions.doc.html#44153
Est-ce que bloc 3 est exécuté dans tous les cas, y compris si bloc2 fait un
rethrow ? A priori je dirais non... Ai-je tord ? Est-ce "mal" de faire un
throw dans un bloc catch ?
Merci
Pour ce genre de questions très précises, un coup de recherche plaintext
dans les specs du langage, est très efficace:
http://java.sun.com/docs/books/jls/index.html
Plus précisemment dans ton cas:
http://java.sun.com/docs/books/jls/second_edition/html/exceptions.doc.html#44153
Est-ce que bloc 3 est exécuté dans tous les cas, y compris si bloc2 fait un rethrow ? A priori je dirais non... Ai-je tord ? Est-ce "mal" de faire un throw dans un bloc catch ?
Merci
Pour ce genre de questions très précises, un coup de recherche plaintext dans les specs du langage, est très efficace: http://java.sun.com/docs/books/jls/index.html
Plus précisemment dans ton cas: http://java.sun.com/docs/books/jls/second_edition/html/exceptions.doc.html#44153
Est-ce que bloc 3 est exécuté dans tous les cas, y compris si bloc2 fait un rethrow ?
Oui, il est exécuté dans tous les cas
A priori je dirais non... Ai-je tord ?
Tort. Oui.
Est-ce "mal" de faire un throw dans un bloc catch ?
Pas du tout. Si l'action qui précède n'a pas permis à la méthode de remplir son contrat, il faut faire un rethrow.
Le bloc catch n'est pas obligatoire (le bloc finally non plus, mais il faut au moins un des 2). Donc si vous êtes améné à écrire un clause catch du genre catch (Exception ex) { throw ex; } vous pouvez l'éliminer et garder seulement le try/finally, elle ne sert stictement à rien.
Merci
"Zouplaz" <pouet@pouet.com> a écrit dans le message de news:
Xns95FAA180815D0Zoupla@212.27.42.73...
Est-ce que bloc 3 est exécuté dans tous les cas, y compris si bloc2 fait
un
rethrow ?
Oui, il est exécuté dans tous les cas
A priori je dirais non... Ai-je tord ?
Tort. Oui.
Est-ce "mal" de faire un
throw dans un bloc catch ?
Pas du tout. Si l'action qui précède n'a pas permis à la méthode de remplir
son contrat, il faut faire un rethrow.
Le bloc catch n'est pas obligatoire (le bloc finally non plus, mais il faut
au moins un des 2). Donc si vous êtes améné à écrire un clause catch du
genre
catch (Exception ex) { throw ex; }
vous pouvez l'éliminer et garder seulement le try/finally, elle ne sert
stictement à rien.
Est-ce que bloc 3 est exécuté dans tous les cas, y compris si bloc2 fait un rethrow ?
Oui, il est exécuté dans tous les cas
A priori je dirais non... Ai-je tord ?
Tort. Oui.
Est-ce "mal" de faire un throw dans un bloc catch ?
Pas du tout. Si l'action qui précède n'a pas permis à la méthode de remplir son contrat, il faut faire un rethrow.
Le bloc catch n'est pas obligatoire (le bloc finally non plus, mais il faut au moins un des 2). Donc si vous êtes améné à écrire un clause catch du genre catch (Exception ex) { throw ex; } vous pouvez l'éliminer et garder seulement le try/finally, elle ne sert stictement à rien.
Merci
Bruno Jouhier
"Laurent Bossavit" a écrit dans le message de news:
Est-ce que bloc 3 est exécuté dans tous les cas, y compris si bloc2 fait un rethrow ?
Oui.
A priori je dirais non... Ai-je tord ?
Oui. :)
Est-ce "mal" de faire un throw dans un bloc catch ?
Non.
Ce qui est "mal", et qu'il faut éviter, c'est d'inclure un "return", "break" ou "continue" dans un bloc "finally". Précisément parce que si le bloc "finally" est appelé à la suite d'une exception relancée, le return (etc.) va faire repartir sur un traitement normal, et plus un traitement d'exception.
Tout à fait! Ca devrait être détécté et refusé par le compilateur (c'est le cas en C# mais pas en Java).
Cf. http://pclt.cis.yale.edu/pclt/exceptions.htm
Laurent http://bossavit.com/thoughts/
"Laurent Bossavit" <laurent@dontspambossavit.com> a écrit dans le message de
news: MPG.1c76ea6d58b1ee939898d0@news.noos.fr...
Est-ce que bloc 3 est exécuté dans tous les cas, y compris si bloc2 fait
un
rethrow ?
Oui.
A priori je dirais non... Ai-je tord ?
Oui. :)
Est-ce "mal" de faire un throw dans un bloc catch ?
Non.
Ce qui est "mal", et qu'il faut éviter, c'est d'inclure un "return",
"break" ou "continue" dans un bloc "finally". Précisément parce que si
le bloc "finally" est appelé à la suite d'une exception relancée, le
return (etc.) va faire repartir sur un traitement normal, et plus un
traitement d'exception.
Tout à fait! Ca devrait être détécté et refusé par le compilateur (c'est le
cas en C# mais pas en Java).
"Laurent Bossavit" a écrit dans le message de news:
Est-ce que bloc 3 est exécuté dans tous les cas, y compris si bloc2 fait un rethrow ?
Oui.
A priori je dirais non... Ai-je tord ?
Oui. :)
Est-ce "mal" de faire un throw dans un bloc catch ?
Non.
Ce qui est "mal", et qu'il faut éviter, c'est d'inclure un "return", "break" ou "continue" dans un bloc "finally". Précisément parce que si le bloc "finally" est appelé à la suite d'une exception relancée, le return (etc.) va faire repartir sur un traitement normal, et plus un traitement d'exception.
Tout à fait! Ca devrait être détécté et refusé par le compilateur (c'est le cas en C# mais pas en Java).
Cf. http://pclt.cis.yale.edu/pclt/exceptions.htm
Laurent http://bossavit.com/thoughts/
Olivier Thomann
Ce qui est "mal", et qu'il faut éviter, c'est d'inclure un "return", "break" ou "continue" dans un bloc "finally". Précisément parce que si le bloc "finally" est appelé à la suite d'une exception relancée, le return (etc.) va faire repartir sur un traitement normal, et plus un traitement d'exception. Tout à fait! Ca devrait être détécté et refusé par le compilateur (c'est le
cas en C# mais pas en Java). Note que le compilateur d'Eclipse detecte ce cas et peut te renvoyer une
erreur ou un warning selon les preferences de l'utilisateur. -- Olivier
Ce qui est "mal", et qu'il faut éviter, c'est d'inclure un "return",
"break" ou "continue" dans un bloc "finally". Précisément parce que si
le bloc "finally" est appelé à la suite d'une exception relancée, le
return (etc.) va faire repartir sur un traitement normal, et plus un
traitement d'exception.
Tout à fait! Ca devrait être détécté et refusé par le compilateur (c'est le
cas en C# mais pas en Java).
Note que le compilateur d'Eclipse detecte ce cas et peut te renvoyer une
erreur ou un warning selon les preferences de l'utilisateur.
--
Olivier
Ce qui est "mal", et qu'il faut éviter, c'est d'inclure un "return", "break" ou "continue" dans un bloc "finally". Précisément parce que si le bloc "finally" est appelé à la suite d'une exception relancée, le return (etc.) va faire repartir sur un traitement normal, et plus un traitement d'exception. Tout à fait! Ca devrait être détécté et refusé par le compilateur (c'est le
cas en C# mais pas en Java). Note que le compilateur d'Eclipse detecte ce cas et peut te renvoyer une
erreur ou un warning selon les preferences de l'utilisateur. -- Olivier
Alain
Olivier Thomann wrote:
Ce qui est "mal", et qu'il faut éviter, c'est d'inclure un "return", "break" ou "continue" dans un bloc "finally". Précisément parce que si le bloc "finally" est appelé à la suite d'une exception relancée, le return (etc.) va faire repartir sur un traitement normal, et plus un traitement d'exception. Tout à fait! Ca devrait être détécté et refusé par le compilateur
(c'est le cas en C# mais pas en Java). Note que le compilateur d'Eclipse detecte ce cas et peut te renvoyer une
erreur ou un warning selon les preferences de l'utilisateur.
je ne crois pas qu'il y ait de "compilateur d'eclipse". il utilise le compilateur du JDK je crois ? donc c'est dans le compilo standar, mais probablement que l'option de warning est inactivé. l'est elle vraiement ?
Olivier Thomann wrote:
Ce qui est "mal", et qu'il faut éviter, c'est d'inclure un "return",
"break" ou "continue" dans un bloc "finally". Précisément parce que si
le bloc "finally" est appelé à la suite d'une exception relancée, le
return (etc.) va faire repartir sur un traitement normal, et plus un
traitement d'exception.
Tout à fait! Ca devrait être détécté et refusé par le compilateur
(c'est le cas en C# mais pas en Java).
Note que le compilateur d'Eclipse detecte ce cas et peut te renvoyer une
erreur ou un warning selon les preferences de l'utilisateur.
je ne crois pas qu'il y ait de "compilateur d'eclipse". il utilise le
compilateur du JDK je crois ?
donc c'est dans le compilo standar, mais probablement que l'option de
warning est inactivé. l'est elle vraiement ?
Ce qui est "mal", et qu'il faut éviter, c'est d'inclure un "return", "break" ou "continue" dans un bloc "finally". Précisément parce que si le bloc "finally" est appelé à la suite d'une exception relancée, le return (etc.) va faire repartir sur un traitement normal, et plus un traitement d'exception. Tout à fait! Ca devrait être détécté et refusé par le compilateur
(c'est le cas en C# mais pas en Java). Note que le compilateur d'Eclipse detecte ce cas et peut te renvoyer une
erreur ou un warning selon les preferences de l'utilisateur.
je ne crois pas qu'il y ait de "compilateur d'eclipse". il utilise le compilateur du JDK je crois ? donc c'est dans le compilo standar, mais probablement que l'option de warning est inactivé. l'est elle vraiement ?
Olivier Thomann
je ne crois pas qu'il y ait de "compilateur d'eclipse". il utilise le compilateur du JDK je crois ? donc c'est dans le compilo standar, mais probablement que l'option de warning est inactivé. l'est elle vraiement ? Qu'est-ce qui te fait dire cela?
Je peux te dire de source sure qu'Eclipse a son propre compilateur. Ce compilateur peut etre utilise seul, dans un script ant ou dans Eclipse.
L'option pour detecter les block finally qui retournent est activee par defaut. Sinon pour ceux que ca interesse, le nom de l'option est: -warn:finally -- Olivier
je ne crois pas qu'il y ait de "compilateur d'eclipse". il utilise le
compilateur du JDK je crois ?
donc c'est dans le compilo standar, mais probablement que l'option de
warning est inactivé. l'est elle vraiement ?
Qu'est-ce qui te fait dire cela?
Je peux te dire de source sure qu'Eclipse a son propre compilateur. Ce
compilateur peut etre utilise seul, dans un script ant ou dans Eclipse.
L'option pour detecter les block finally qui retournent est activee par
defaut. Sinon pour ceux que ca interesse, le nom de l'option est:
-warn:finally
--
Olivier
je ne crois pas qu'il y ait de "compilateur d'eclipse". il utilise le compilateur du JDK je crois ? donc c'est dans le compilo standar, mais probablement que l'option de warning est inactivé. l'est elle vraiement ? Qu'est-ce qui te fait dire cela?
Je peux te dire de source sure qu'Eclipse a son propre compilateur. Ce compilateur peut etre utilise seul, dans un script ant ou dans Eclipse.
L'option pour detecter les block finally qui retournent est activee par defaut. Sinon pour ceux que ca interesse, le nom de l'option est: -warn:finally -- Olivier
Wismerhill
Alain ecrivit le 12/02/2005 15:09 :
Olivier Thomann wrote:
Ce qui est "mal", et qu'il faut éviter, c'est d'inclure un "return", "break" ou "continue" dans un bloc "finally". Précisément parce que si le bloc "finally" est appelé à la suite d'une exception relancée, le return (etc.) va faire repartir sur un traitement normal, et plus un traitement d'exception.
Tout à fait! Ca devrait être détécté et refusé par le compilateur (c'est le cas en C# mais pas en Java).
Note que le compilateur d'Eclipse detecte ce cas et peut te renvoyer une erreur ou un warning selon les preferences de l'utilisateur.
je ne crois pas qu'il y ait de "compilateur d'eclipse". il utilise le compilateur du JDK je crois ? donc c'est dans le compilo standar, mais probablement que l'option de warning est inactivé. l'est elle vraiement ?
Non, Eclipse contient son propre compilateur.
Alain ecrivit le 12/02/2005 15:09 :
Olivier Thomann wrote:
Ce qui est "mal", et qu'il faut éviter, c'est d'inclure un "return",
"break" ou "continue" dans un bloc "finally". Précisément parce que si
le bloc "finally" est appelé à la suite d'une exception relancée, le
return (etc.) va faire repartir sur un traitement normal, et plus un
traitement d'exception.
Tout à fait! Ca devrait être détécté et refusé par le compilateur
(c'est le cas en C# mais pas en Java).
Note que le compilateur d'Eclipse detecte ce cas et peut te renvoyer
une erreur ou un warning selon les preferences de l'utilisateur.
je ne crois pas qu'il y ait de "compilateur d'eclipse". il utilise le
compilateur du JDK je crois ?
donc c'est dans le compilo standar, mais probablement que l'option de
warning est inactivé. l'est elle vraiement ?
Ce qui est "mal", et qu'il faut éviter, c'est d'inclure un "return", "break" ou "continue" dans un bloc "finally". Précisément parce que si le bloc "finally" est appelé à la suite d'une exception relancée, le return (etc.) va faire repartir sur un traitement normal, et plus un traitement d'exception.
Tout à fait! Ca devrait être détécté et refusé par le compilateur (c'est le cas en C# mais pas en Java).
Note que le compilateur d'Eclipse detecte ce cas et peut te renvoyer une erreur ou un warning selon les preferences de l'utilisateur.
je ne crois pas qu'il y ait de "compilateur d'eclipse". il utilise le compilateur du JDK je crois ? donc c'est dans le compilo standar, mais probablement que l'option de warning est inactivé. l'est elle vraiement ?