begin process at 2010 02 10 00:07:51
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C#

 > 

Archives

 > 

Divers

 > 

Finally


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Finally

mardi 2 mai 2006 à 19:29:45 | Finally

cyrare

Membre Club
Bonjour,

Question absolument pas urgente, je cherche à comprendre la subtilité qu'il y a entre :

try
{
     [Instructions A]
}
catch
{
     [Instructions B]
}
finally
{
     [Instructions C]
}


et

try
{
     [Instructions A]
}
catch
{
     [Instructions B]
}
[Instructions C]


J'ai l'impression que les 2 codes sont identiques, mais j'imagine qu'il y a forcément une différence, sinon, finally n'existerait pas... J'ai cherché sur le net, mais rien de très clair à ce sujet.

Merci pour vos lumières. :)
mardi 2 mai 2006 à 20:57:03 | Re : Finally

MorpionMx

Membre Club Administrateur CodeS-SourceS
Salut,

Petit test simple :



publicclassForm1 : Form
{
   public Form1()
   {
      try
      {
         Test();
      }
      
catch (Exception e)
      {
         MessageBox.Show("Dans catch constructeur");
      }
   }
   publicvoid Test()
   {
      try
      {
         MessageBox.Show("Dans try test");
         thrownewException();
      }
      catch (Exception)
      {
         MessageBox.Show("Dans catch test");
         throw;   
      }
      finally
      {
         MessageBox.Show("Dans finally");
      }
      MessageBox.Show("Apres finally");
}



L'instruction apres le finally n'est pas appelée, pourtant, celle dans le finally l'est.
Le finally est la pour t'assurer que le bloc d'instruction qu'il contient est toujours appelé.

Mx
MVP C#
 

mardi 2 mai 2006 à 21:07:50 | Re : Finally

MorpionMx

Membre Club Administrateur CodeS-SourceS
Autre exemple : si tu met un return dans ton try ou ton catch, ou si une exception n'est pas gérée dans ta méthode (enleve le catch de la méthode test de mon exemple), le finally est quand meme appelé, et pas le code suivant.

Donc pour etre plus explicite, le finally est appelé quoiqu'il arrive, ce qui est un comportement crucial pour fermer un fichier ouvert, clore une connexion a une base de données, liberer et nettoyer les ressources, ...



Mx
MVP C#
 



Cette discussion est classée dans : catch, finally, instructions


Répondre à ce message

Sujets en rapport avec ce message

Gestion d'erreur du Framework [ par bucherb ] Hello!!Est-ce quelqu'un saurait comment arrêter l'interception automatique des erreurs du framework?J'ai une exception qui est lancée à un moment donn un try catch généraliste [ par Fildomen ] salutje suis entrain de developper un serveur, le projet ou faut pas que le prog plante, mais je suis sur qu'il va planter qlq part :-) , alors , je v Continuer une methode après une catch() [ par moihenry ] Bj,Voila je voudrais que dans une fonction de un programme si jamais il y a une erreur le programme continue a fonctionner normalement !!Par ex :une m Comment obliger le catch d'une exception? [ par tominfo ] Salut, Je cherche à savoir comment on indique à une méthode qu'elle est suscpetible de jetter une exception et que l'objet qui l'appelle soit obligé probleme base de donnée fermée [ par ultima_93 ] Bonjour,Je dois faire la maintenance d'un service windows en C# qui démarre tous les jours à 8h du matin, ce service accède à une base de données orac instructions codées par la voix???? [ par othland ] slt tlm,existe il, en C#, la notion d'instructions codées par la voie????ou bien j'invente avec ma....tête!!??!! Insert et Access [ par hoodlum ] Bonjour a tous je suis débutant dans le traitement de base de données avec C# je fais une requete insert qui ne marche pas le dernier catch me dit q Redéfinition de mon exception [ par BackPack ] Bonjour à tous,J'ai une petite question. Je sais pas si c'est parce que j'ai pasles yeux en face des trous aujourd'hui mais je n'arrive pas àfaire un Désactiver Try - Catch [ par Julien237 ] Bonjour,Je suis en train de debugger un projet relativement gros. Mon problème est que la gestion d'erreur du projet me gènent dans mon travail. Pour Try, Catch et Application.Exit [ par clubberzZ ] Bonjour à tous,Quand j'éxécute le code ci-dessous il fonctionne mais l'application ne se quitte pas, la ligne "Application.Exit();" n'est pas prise en


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,343 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales