Enhver løsning for å få ytre unntak fra et unntak kastet inne i en påberopes metode i WinForms?

stemmer
0

I Windows Forms når et unntak fra en samtale til Invokeeller BeginInvoke, og det er ubehandlet av noen catch-blokken, kan det bli håndtert av en kontroll- eller program-nivå handler via Windows.Forms.Application.ThreadExceptionhendelsen. Dens behandleren tar en EventArgsmed en eiendom Exception, som er unntaket kastes. Men under panseret, Windows.Forms.Control (uønsket) strimler av alle, men den mest indre unntak, per dette svaret .

Fant dette blogginnlegget på den også, men det betyr ikke foreslå noen løsning.

(Denne tiden forårsaker meg å få en triviell stakksporingen i mine feillogger - en bunke spor som forteller meg de innerste detaljer, men det er ingen ringer kode nevnt og ingen måte å finne ut koden plasseringen av en slik feil. )

Er det en løsning? Er det noen måte å få alle de ytre unntak i min søknad hendelseshåndterer (som logging uventede unntak for feilsøking)?

Det eneste forslaget jeg har funnet ser ut til å være å fange unntak inne i påberopes kode og greier noe av sin info til Exception.Data, kanskje i en ny unntak - men hvis jeg visste det ytre koden som forårsaket unntaket, kunne jeg bare rette opp en feil i stedet for å logge den. I stedet, hvordan kan jeg gjøre dette globalt uten innpakning en try-catch rundt hver kandidat blokk med kode?

Publisert på 02/12/2019 klokken 23:53
kilden bruker
På andre språk...                            


1 svar

Enhver løsning for å få ytre unntak fra et unntak kastet inne i en påberopes metode i WinForms?

stemmer
0

I Windows Forms når et unntak fra en samtale til Invokeeller BeginInvoke, og det er ubehandlet av noen catch-blokken, kan det bli håndtert av en kontroll- eller program-nivå handler via Windows.Forms.Application.ThreadExceptionhendelsen. Dens behandleren tar en EventArgsmed en eiendom Exception, som er unntaket kastes. Men under panseret, Windows.Forms.Control (uønsket) strimler av alle, men den mest indre unntak, per dette svaret .

Fant dette blogginnlegget på den også, men det betyr ikke foreslå noen løsning.

(Denne tiden forårsaker meg å få en triviell stakksporingen i mine feillogger - en bunke spor som forteller meg de innerste detaljer, men det er ingen ringer kode nevnt og ingen måte å finne ut koden plasseringen av en slik feil. )

Er det en løsning? Er det noen måte å få alle de ytre unntak i min søknad hendelseshåndterer (som logging uventede unntak for feilsøking)?

Det eneste forslaget jeg har funnet ser ut til å være å fange unntak inne i påberopes kode og greier noe av sin info til Exception.Data, kanskje i en ny unntak - men hvis jeg visste det ytre koden som forårsaket unntaket, kunne jeg bare rette opp en feil i stedet for å logge den. I stedet, hvordan kan jeg gjøre dette globalt uten innpakning en try-catch rundt hver kandidat blokk med kode?

Svarte 02/12/2019 kl. 23:53
kilden bruker

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