Qualsiasi soluzione per ottenere eccezioni esterne da un eccezione generata all'interno di un metodo richiamato in WinForms?

voti
0

In Windows Form quando viene generata un'eccezione da una chiamata a Invokeoppure BeginInvoke, ed è gestita da qualsiasi blocco catch, può essere gestito da un gestore di controllo- o livello di applicazione tramite la Windows.Forms.Application.ThreadExceptionmanifestazione. Il suo gestore prende una EventArgscon una proprietà Exception, che è l'eccezione generata. Tuttavia, sotto il cofano, Windows.Forms.Control (indesiderabilmente) spoglia tutti ma il più eccezione interna, per questa risposta .

Trovato questo post del blog su di esso pure, ma non suggerisce alcuna soluzione alternativa.

(Questo momento mi sta causando per ottenere una traccia dello stack banale nei miei log di errore - una traccia dello stack che mi dice i particolari intimi di, ma non esiste un codice chiamando menzionato e non c'è modo di capire la posizione del codice di un errore del genere. )

C'è una soluzione? C'è un modo per ottenere tutte le eccezioni esterne del mio gestore di eventi di applicazione (che sta registrando eccezioni impreviste per la risoluzione dei problemi)?

L'unico suggerimento che ho trovato sembra essere quella di intercettare l'eccezione all'interno del codice invocata e roba alcune delle sue informazioni in Exception.Data, forse in una nuova eccezione - ma se sapevo che il codice esterno che ha causato l'eccezione, ho potuto solo risolvere il bug piuttosto che la registrazione di esso. Invece, come potrei fare questo a livello globale, senza avvolgendo un try-catch intorno ad ogni blocco candidato del codice?

È pubblicato 02/12/2019 alle 23:53
fonte dall'utente
In altre lingue...                            


1 risposte

Qualsiasi soluzione per ottenere eccezioni esterne da un eccezione generata all'interno di un metodo richiamato in WinForms?

voti
0

In Windows Form quando viene generata un'eccezione da una chiamata a Invokeoppure BeginInvoke, ed è gestita da qualsiasi blocco catch, può essere gestito da un gestore di controllo- o livello di applicazione tramite la Windows.Forms.Application.ThreadExceptionmanifestazione. Il suo gestore prende una EventArgscon una proprietà Exception, che è l'eccezione generata. Tuttavia, sotto il cofano, Windows.Forms.Control (indesiderabilmente) spoglia tutti ma il più eccezione interna, per questa risposta .

Trovato questo post del blog su di esso pure, ma non suggerisce alcuna soluzione alternativa.

(Questo momento mi sta causando per ottenere una traccia dello stack banale nei miei log di errore - una traccia dello stack che mi dice i particolari intimi di, ma non esiste un codice chiamando menzionato e non c'è modo di capire la posizione del codice di un errore del genere. )

C'è una soluzione? C'è un modo per ottenere tutte le eccezioni esterne del mio gestore di eventi di applicazione (che sta registrando eccezioni impreviste per la risoluzione dei problemi)?

L'unico suggerimento che ho trovato sembra essere quella di intercettare l'eccezione all'interno del codice invocata e roba alcune delle sue informazioni in Exception.Data, forse in una nuova eccezione - ma se sapevo che il codice esterno che ha causato l'eccezione, ho potuto solo risolvere il bug piuttosto che la registrazione di esso. Invece, come potrei fare questo a livello globale, senza avvolgendo un try-catch intorno ad ogni blocco candidato del codice?

Risposto il 02/12/2019 a 23:53
fonte dall'utente

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