Je suppose que si j'ai une exception dans le bloc try le finally ne sera pas executé ? si ?Code:
1
2
3
4
5
6
7
8
9
10 try{ ... } catch(Exception e){ throw new MonException(); } finally{ ... }
Version imprimable
Je suppose que si j'ai une exception dans le bloc try le finally ne sera pas executé ? si ?Code:
1
2
3
4
5
6
7
8
9
10 try{ ... } catch(Exception e){ throw new MonException(); } finally{ ... }
Rien que le mot clé Finally aurait-du t'interpeler.
LE code situé dans le Finally sera toujours exécuté, y compris si, après déclenchement d'une exception et donc passage dans le Catch, une seconde exception est déclenché dans celui-ci.
Ouais j'aurais pu tester, ouais il y msdn où c'est tellement bordelique que je trouves toujours pleins de réponses à des questions que je ne m'étais jamais posées... ouais ok.
A la limite la prochaine fois je viendrais poster un truc du genre : "Alors je me posais une question qui est '...' mais heureusement grâce à tout l'internet sauf à developpez.net j'ai trouvé une solution qui est : '...', donc je vous la poste sur developpez.net pour que vous ayez pas à chercher sur le reste du net. Fin voila c'est dommage que ce site soit aussi grincheux.
Oui tu aurais pu tester, tu aurais eu la réponse très rapidement. Oui la MSDN est parfois bordélique, mais sous google tu cherches avec C#finally et le premier lien qui tombe pointe sur la MSDN avec la gestion du try-catch. Ca prend 30 secondes, à condition d'être un peu autonome et ne pas attendre que tout tombe du ciel.Citation:
Ouais j'aurais pu tester, ouais il y msdn où c'est tellement bordelique que je trouves toujours pleins de réponses à des questions que je ne m'étais jamais posées... ouais ok.
Que tu me traites de grincheux passe encore, mais cela n'a rien à voir avec le site, ne mélange pas tout ... Désolé si lorsque je vois une question qui ne devrait pas être posée (car là c'est vraiment basique de chez basique, gestion try-catch) je fais remarquer à la personne qu'avec un tout petit effort personnel la réponse est à portée de main.Citation:
Fin voila c'est dommage que ce site soit aussi grincheux.
Il y a beaucoup de questions de cet acabit et c'est dommage. Je veux bien être traité de grincheux si ça permet de faire réagir certains et qu'ils commencent un peu à chercher d'eux même les réponses lorsque c'est évident.
La prochaine personne qui vient demander comment on additionne 2 et 2 avec C# on doit faire quoi ? La prendre par la main ? Ou bien lui conseiller de chercher d'elle même car cela lui apportera bien plus ?
Je viens de me poser une question un peu similaire, Google m'a orienté vers ce post. Et ce qu'il arrive c'est que je tombe sur une réponse du genre : va voir Google / va voir la MSDN.
Il n'y a pas que le mec qui a posé la question que ça soule...
Ma question était quelle est la différence entre finally et rien du tout (derrière le "End Try" si en VB.NET), mais je vais plutôt aller voir ailleurs si j'y suis.
oui, ça c'est dans la première réponseCitation:
je tombe sur une réponse du genre : va voir Google / va voir la MSDN.
Mais dès le seconde réponse, tu avais la réponse à ta question que tu pose quand même (tout comme dans la MSDN d'ailleurs)
D'une part le finaly se mettra toujours avant le End Try et d'autre partqu'il y ait déclenchement d'une exception ou pasCitation:
LE code situé dans le Finally sera toujours exécuté,
Bonjour,
Pour info, tu peux faire un try finaly. Il n'y a pas de catch et donc l'exception sera propagé à la méthode appelante. L'existance de cette structure indique clairement que le finaly est toujours accompli (sinon aucun intérêtde la créer !)
Une application de ce type de code est de laisser els couches appelantes gérer les erreur et de pouvoir faire les closes et dispose qui vont bien !
Cdt