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
Voici le contenu du Program.VB
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 :
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
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
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 !
Partager