Elke oplossing om buitenste uitzonderingen te krijgen van een uitzondering gegenereerd binnen een aangeroepen methode in WinForms?

stemmen
0

In Windows Forms als een uitzondering wordt gegooid vanaf een oproep Invokeof BeginInvokeen wordt unhandled door een blok catch kan worden behandeld door een controle- of toepassingsniveau handler via de Windows.Forms.Application.ThreadExceptionevent. Zijn handler neemt een EventArgsmet een woning Exception, dat is de uitzondering gegooid. Echter, onder de motorkap, Windows.Forms.Control (ongewenst) strips uit alles behalve de binnenste uitzondering per dit antwoord .

Vond deze blogpost op het ook, maar het suggereert geen oplossing.

(Dit is momenteel waardoor ik een triviale stack trace in mijn foutenlogboeken krijgen - een stack trace die me vertelt de binnenste details over, maar er is geen bellen code zijn genoemd, en geen manier om erachter te komen van de code locatie van een dergelijke fout. )

Is er een oplossing? Is er een manier om alle uiterlijke uitzonderingen in mijn toepassing event handler krijgen (die zich aanmeldt onverwachte uitzonderingen voor het oplossen van problemen)?

De enige suggestie ik heb gevonden lijkt te zijn om de uitzondering in de ingeroepen code op te vangen en vul een aantal van haar info in Exception.Data, misschien in een nieuwe uitzondering - maar als ik de buitenste code die de uitzondering veroorzaakt wist, kon ik alleen maar vaststellen van de bug in plaats van in te loggen het. In plaats daarvan, hoe kon ik doe dit globaal zonder wikkelen van een try-catch rond elke kandidaat blok code?

De vraag is gesteld op 02/12/2019 om 23:53
bron van user
In andere talen...                            


1 antwoorden

Elke oplossing om buitenste uitzonderingen te krijgen van een uitzondering gegenereerd binnen een aangeroepen methode in WinForms?

stemmen
0

In Windows Forms als een uitzondering wordt gegooid vanaf een oproep Invokeof BeginInvokeen wordt unhandled door een blok catch kan worden behandeld door een controle- of toepassingsniveau handler via de Windows.Forms.Application.ThreadExceptionevent. Zijn handler neemt een EventArgsmet een woning Exception, dat is de uitzondering gegooid. Echter, onder de motorkap, Windows.Forms.Control (ongewenst) strips uit alles behalve de binnenste uitzondering per dit antwoord .

Vond deze blogpost op het ook, maar het suggereert geen oplossing.

(Dit is momenteel waardoor ik een triviale stack trace in mijn foutenlogboeken krijgen - een stack trace die me vertelt de binnenste details over, maar er is geen bellen code zijn genoemd, en geen manier om erachter te komen van de code locatie van een dergelijke fout. )

Is er een oplossing? Is er een manier om alle uiterlijke uitzonderingen in mijn toepassing event handler krijgen (die zich aanmeldt onverwachte uitzonderingen voor het oplossen van problemen)?

De enige suggestie ik heb gevonden lijkt te zijn om de uitzondering in de ingeroepen code op te vangen en vul een aantal van haar info in Exception.Data, misschien in een nieuwe uitzondering - maar als ik de buitenste code die de uitzondering veroorzaakt wist, kon ik alleen maar vaststellen van de bug in plaats van in te loggen het. In plaats daarvan, hoe kon ik doe dit globaal zonder wikkelen van een try-catch rond elke kandidaat blok code?

antwoordde op 02/12/2019 om 23:53
bron van user

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