Bonjour,
je travaille en VB.net sur VS2005 et j'ai un petit problème de gestion d'exceptions dans mon application.
En effet, en me basant sur l'exemple suivant : http://www.dotneat.net/2009/02/10/Ba...erExample.aspx
j'ai tenté de laisser mon BackgroundWorker attraper mes exceptions.
J'ai tenté de provoquer une exception manuellement dans mon DoWork() en faisait unSans aucun Try..Catch dans mon DoWork, j'ai réussi à récupérer celle-ci dans mon RunWorkerCompleted dans l'argument e.error.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Throw New Exception
Cependant, il y a une méthode fournie par un client, à laquelle je n'ai pas accès au code; je peux seulement l'appeler.
L'exécution de cette méthode soulève une exception de type EndpointNotFoundException. Je connais la source de l'exception. Le problème est que je ne peux pas l'attraper. (Try... Catch)
Pour une raison inconnue, les exception levées directement dans le code du DoWork() sont attrapées (Exemple, si je lance un :
Je peux l'attraper sans problème), mais l'exception se produit dans le code de la méthode mentionnée précédemment, et comme par magie ne se fait pas attraper par le e.error ni par un try..catch standard.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Throw New Exception
Quelqu'un aurait-il une idée?
Edit:
Pour ceux que ça pourrait intéresser le problème a pu être réglé de la façon suivante:
Dans mon doWork, j'ai fait un try catch pour vulgariser mes exceptions et dans mon worker_completed j'ai mis la ligne de vérification pour savoir s'il y a eu erreur en premier, c'est très important que ce soit la première chose dans le worker_completed, sinon visual studio n'attrape pas les exceptions..
Le "check" en question était seulement:
Bonne programmation à tous!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 if e.error isnot nothing then Messagebox.Show(e.error.message) end if
Partager