Bonjour à tous
Dans une feuille MDI, plusieurs forms sont appelées de la manière suivante :
Dans chaque form appelée, il y a du code dans le NEW et du code dans le LOAD qui exécute des actions spécifiques en fonction de la form appelante.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 Dim MaForm As frmForm = Nothing Try MaForm = New frmForm MaForm.MdiParent = Me MaForm.EcranAppelant = Me.Name m_ChildFormNumber += 1 MaForm.Show() Catch Ex As Exception MessageBox.Show(Ex.Message, "Erreur !", MessageBoxButtons.OK, MessageBoxIcon.Error) If MaForm IsNot Nothing Then MaForm.Dispose() : MaForm = Nothing End Try
Voici la structure du code du NEW :
Dans le NEW, toute erreur, même une erreur que je déclenche volontairement pour tester dans la partie A, se retrouve catchée par le bloc Try de la MDI. Fonctionnement normal.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 InitializeComponent() Partie A = code dont je ne veux pas gérer les erreurs dans le new .... Try Partie B = erreurs fonctionnelles que je veux gérer Catch Ex As Exception Throw New Exception(Ex.Message) End Try
Cela fonctionne donc bien quand une erreur se produit dans le NEW.
Mais quand une erreur se produit dans le LOAD, une exception non gérée se produit.
Si je mets un bloc Try, je peux afficher le message mais si je veux propager l'erreur pour qu'elle revienne dans la bloc Try de la MDI, j'ai une erreurUne exception non gérée du type 'System.Exception' s'est produite
Je ne comprends pas. Comment cela se fait-il ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 ' Dans le Load : ... Try ... Catch Ex As Exception MessageBox.Show(Ex.Message) ' => j'ai bien le message de l'erreur qui s'affiche dans la MessageBox Throw New Exception(Ex.Message) ' => plantage avec le message "Une exception non gérée du type 'System.Exception' s'est produite" End Try
Merci de votre aide.
Partager