Sto cercando di rielaborare e semplificare la gestione degli errori in un'applicazione che supporto. Al momento abbiamo tutte le nostre pagine che ereditano da una classe base che abbiamo creato, che a sua volta eredita ovviamente da System.Web.UI.Page. All'interno di questa classe base, il metodo OnError è attualmente sottoposto a override e, a sua volta, chiama MyBase.OnError e quindi chiama uno dei nostri metodi di registrazione personalizzati.Quando sovrascrivere OnError?
Non vedo alcun vantaggio di sovrascrivere il metodo OnError, e penso che sarebbe meglio lasciare che il metodo Application_Error nel Global.asax si occupi dell'eccezione non gestita (logging it) e quindi della sezione CustomErrors in la configurazione attiverebbe un processo per reindirizzare l'utente.
Guardando online sembra che le persone sovrascrivano questo metodo abbastanza frequentemente, ma non vedo la necessità di e l'articolo this da MSDN mi fa pensare lo stesso.
Ma, ancora una volta, il motivo per cui l'override del metodo OnError? Se è necessario gestire le informazioni nel contesto della pagina, capisco perché si desidera gestire l'errore in tale contesto (registrazione di dati specifici sulla pagina, input dell'utente, visualizzazione dei messaggi sullo schermo, ecc.), Ma perché ignorare il metodo OnError esistente invece di usare Page_Error o Application_Error? –
page_error deriva da onerror (Page_Load viene chiamato dal metodo OnLoad, ecc.), Ecco perché OnError; è la stessa di Page_Error ... Quindi la vera domanda è perché errore di pagina contro errore app ... –
Con il link che ho fornito sopra, il paragrafo sopra la sezione "global.asax: Application_Error" menziona che mettere il codice in un Il metodo OnError Override non è uguale all'utilizzo di Page_Error. Quindi, nel tuo caso, suppongo tu stia ignorando quella funzionalità per reindirizzare da solo, quindi probabilmente è okay. Nel mio caso, non stiamo sovrascrivendo nessuna di queste funzionalità all'interno del metodo OnError, stiamo solo facendo un log molto generale sull'eccezione generata. Penso che potremmo mettere la registrazione a livello di applicazione e rimuovere il nostro metodo OnError. Grazie per il tuo contributo. –