UPDATE :
En fait, je pense que j'ai tourné un peu trop en rond, le problème ne semble pas venir de la DLL mais du fait que j'utilise plusieurs threads, certains affichant des formulaires et sur ces formulaires des erreurs peuvent apparaître.
En gros, mon problème ne peu pas être résumé à ce que j'ai décrit dans le message. Je préfère le laisser en stand-by pour l'instant et quand je clarifie ma situation, je relancerai la question.
Bonjour à tous,
J'ai passé ma journée à m'arracher les cheveux sur un sujet dont la réponse est probablement simple :
Contenu simplifié de la solution :
- 1 projet principal (WinForms),
- 1 DLL
Contexte :
Dans cette DLL, il se peut que des exceptions non gérées soient rencontrées, je sais que c'est pas bien, mais admettons.
Dans le projet principal, un log fait maison enregistre certains événements dont les plantages.
Pour les plantages, j'utilisais l'événements MyApplication.UnhandledException et ça marchait très bien en lançant depuis VS2017.
Cet événement récupérait toutes les exceptions non gérées, peu importe leur provenance.
Problématique :
Cela ne fonctionne pas en exécutant directement l'exécutable. Seules les erreurs du projet principal sont récupérées, pour la DLL j'ai directement un message du type :
Consultez la fin de ce message pour plus de détails sur l'appel du débogage
juste-à-temps (JIT) à la place de cette boîte de dialogue.
Ce que j'ai essayé de faire :
1) Passer par :
2) Désactiver le Framework de l'application et faire un module Main avec
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 AddHandler AppDomain.CurrentDomain.UnhandledException, AddressOf XXX AddHandler System.Windows.Forms.Application.ThreadException, AddressOf YYY
Avec ou sans le Try/Catch autour du Application.Run, rien n'y fait...
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 Public Sub Main() Application.EnableVisualStyles() Application.SetCompatibleTextRenderingDefault(False) Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException) AddHandler AppDomain.CurrentDomain.UnhandledException, AddressOf XXX AddHandler Application.ThreadException, AddressOf YYY MyApplication_Startup() Try Application.Run(New FormAccueil) Catch Ex As Exception MsgBox("Test") End Try End Sub
Franchement, j'ai l'impression d'avoir fait 3 fois le tour d'Internet et je sature pas mal. Si quelqu'un peut m'aider, ce serait vraiment top.
Merci d'avance !
Quentin.
Partager