Bonjour à tous

Dans une feuille MDI, plusieurs forms sont appelées de la manière suivante :
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
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.

Voici la structure du code du NEW :
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
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.
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.
Une exception non gérée du type 'System.Exception' s'est produite
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 erreur
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
Je ne comprends pas. Comment cela se fait-il ?

Merci de votre aide.