Toute solution de contournement pour obtenir des exceptions extérieures d'une exception jetée à l'intérieur d'une méthode Invoqué en WinForms?

voix
0

Dans Windows Forms lorsqu'une exception est levée d'un appel à Invokeou BeginInvokeet est non gérée par un bloc catch, il peut être manipulé par un gestionnaire de niveau d'application ou via contrôle- l' Windows.Forms.Application.ThreadExceptionévénement. Son gestionnaire prend un EventArgsavec une propriété Exception, ce qui est l'exception levée. Cependant, sous le capot, Windows.Forms.Control (non souhaitable) se déshabille tous , mais la plupart exception interne, par cette réponse .

Trouvé ce billet de blog sur elle aussi, mais il ne suggère aucune solution de contournement.

(Ceci est actuellement me cause pour obtenir une trace de pile trivial dans mes journaux d'erreurs - une trace de pile qui me dit les détails les plus intimes de, mais il n'y a pas de code appelant mentionné et aucun moyen de trouver l'emplacement de code d'une telle erreur. )

Y at-il un travail autour? Est - il possible d'obtenir toutes les exceptions extérieures dans mon gestionnaire d'événements d'application (qui est l' enregistrement des exceptions inattendues pour le dépannage)?

La seule suggestion que j'ai trouvé semble être à intercepter l'exception dans le code Invoqué et farcir certaines de ses informations dans Exception.Data, peut - être dans une nouvelle exception - mais si je savais que le code externe qui a provoqué l'exception, je pouvais corriger le bug plutôt que de l' exploitation forestière. Au lieu de cela, comment pourrais - je faire globalement sans envelopper un try-catch autour de chaque bloc candidat de code?

Créé 02/12/2019 à 23:53
source utilisateur
Dans d'autres langues...                            


1 réponses

Toute solution de contournement pour obtenir des exceptions extérieures d'une exception jetée à l'intérieur d'une méthode Invoqué en WinForms?

voix
0

Dans Windows Forms lorsqu'une exception est levée d'un appel à Invokeou BeginInvokeet est non gérée par un bloc catch, il peut être manipulé par un gestionnaire de niveau d'application ou via contrôle- l' Windows.Forms.Application.ThreadExceptionévénement. Son gestionnaire prend un EventArgsavec une propriété Exception, ce qui est l'exception levée. Cependant, sous le capot, Windows.Forms.Control (non souhaitable) se déshabille tous , mais la plupart exception interne, par cette réponse .

Trouvé ce billet de blog sur elle aussi, mais il ne suggère aucune solution de contournement.

(Ceci est actuellement me cause pour obtenir une trace de pile trivial dans mes journaux d'erreurs - une trace de pile qui me dit les détails les plus intimes de, mais il n'y a pas de code appelant mentionné et aucun moyen de trouver l'emplacement de code d'une telle erreur. )

Y at-il un travail autour? Est - il possible d'obtenir toutes les exceptions extérieures dans mon gestionnaire d'événements d'application (qui est l' enregistrement des exceptions inattendues pour le dépannage)?

La seule suggestion que j'ai trouvé semble être à intercepter l'exception dans le code Invoqué et farcir certaines de ses informations dans Exception.Data, peut - être dans une nouvelle exception - mais si je savais que le code externe qui a provoqué l'exception, je pouvais corriger le bug plutôt que de l' exploitation forestière. Au lieu de cela, comment pourrais - je faire globalement sans envelopper un try-catch autour de chaque bloc candidat de code?

Créé 02/12/2019 à 23:53
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more