Unhandled exception (pas bien gérées ?)
Bonjour à tous,
Je suis en train de tester dans une application les exceptions non managées (de type OutOfMemory par exemple), et, la précision sera peut être utile, sous #Develop V2.
J'ai donc d'abord attentivement lu les discussions existantes à ce sujet (en VB et C#) ce qui m'a (presque) permis de me débrouiller tout seul comme un grand :lol:
Voici le contenu du Program.VB
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| Partial Class MyApplication
Public Sub New()
MyBase.New(AuthenticationMode.Windows)
Me.IsSingleInstance = False
Me.EnableVisualStyles = True
Me.SaveMySettingsOnExit = False ' MySettings are not supported in SharpDevelop.
Me.ShutDownStyle = ShutdownMode.AfterMainFormCloses
'TODO: following line does not work!
'application.SetUnhandledExceptionMode(UnhandledExceptionMode.Automatic)
Dim currentDomain As AppDomain = AppDomain.CurrentDomain
AddHandler CurrentDomain.UnhandledException, AddressOf ManageUnhandledException
End Sub
Protected Overrides Sub OnCreateMainForm()
Me.MainForm = My.Forms.MainForm
End Sub
Sub ManageUnhandledException(sender As Object, e As system.UnhandledExceptionEventArgs)
msgbox("J'ai trouvé une exception non gérée !")
End Sub |
A partir de là, je rencontre les problèmes suivants quand une exception est levée et je précise que ces problèmes sont identiques que l'on soit en mode Debug ou Release :
1) Le msgbox ("J'ai trouvé une exception non gérée !") s'affiche quand le programme est executée depuis l'IDE de #Develop mais pas à partir de l'exe généré.
2) Dans les deux cas, le fenêtre d'exception (celle avec la croix rouge) s'affiche par la suite (exemple : System.IndexOutOfRangeException was thrown in debuggee:...) alors que je souhaiterais ne pas l'afficher justement puisque je gère moi même l'exception !
3) J'ai voulu définir la valeur du mode de gestion des exceptions (application.SetUnhandledExceptionMode) pour à priori résoudre le point précédent. La méthode (en commentaire dans le code ci-dessus) est bien proposée en Auto-Complétion mais la compilation ne la reconnait pas !
4) Mon code ne comporte pas de application.run ni de procédure Main, tout ceci a été généré avec le wizard de #Develop. Est ce que ceci explique celà ?
Merci par avance de vos réponses parce que là, ça coince !