Gestion d'exception dans un Sub New()...

Résolu
spilett Messages postés 4 Date d'inscription vendredi 16 février 2007 Statut Membre Dernière intervention 31 mars 2007 - 12 mars 2007 à 11:20
spilett Messages postés 4 Date d'inscription vendredi 16 février 2007 Statut Membre Dernière intervention 31 mars 2007 - 12 mars 2007 à 17:53
Je développe en VB.NET sur SharpDevelop.
Dans une appli je souhaite ouvrir et lire un fichier dans le constructeur Sub New() d'un Formulaire (c'est-à-dire au moment de son initialisation). Pas de problème ça marche, sauf que je souhaite maintenant traiter les exceptions (fichier introuvable et autres). En cas d'exception, je voudrais interrrompre l'initialisation du Formulaire (et ne pas l'afficher).
Je ne connais pas de solution "élégante" pour éviter l'affichage du formulaire, ou interrompre le constructeur. Auriez-vous une idée ?

Merci d'avance.

2 réponses

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
12 mars 2007 à 11:44
Bonjour


Gérer les exception en .NET :

Try


Catch


End Try


Pour stopper et annuler un constructeur, je ne connais qu'une seule solution : générer une exception :

Throw ...

Il est plus facile de batiser quelqu'un que de la convertir.(surtout en programmation)
VB (6, A excel, .NET), C++, C#.Net
Mon site
3
spilett Messages postés 4 Date d'inscription vendredi 16 février 2007 Statut Membre Dernière intervention 31 mars 2007
12 mars 2007 à 17:53
Merci NHenry,

Je débute en VB.NET (viens de VB6) et je dois dire que j'ai galéré un peu pour utiliser Throw.
En définitive, comme je n'arrivais pas à intercepter l'erreur que je levais par Throw dans la Sub New() du formulaire, j'ai créé une Sub spécifique (toujours dans le formulaire) pour ouvrir et lire le fichier. J'appelle donc cette Sub avant d'afficher mon formulaire par le code suivant :

        Dim Saisie_ As New frmSaisie    
        try
            Saisie_.OpenFile
        Catch ex As Exception
            return
        end try
        Saisie_.Show

Et ça, ça marche. L'exception est correctement levée et interceptée et le formulaire n'est pas affiché en cas d'exception.

Merci encore pour ton aide.
0
Rejoignez-nous