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

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
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 !