2009-04-02 9 views
8

Qual è il modo migliore per gestire le eccezioni che si verificano nelle dichiarazioni catch. Attualmente stiamo scrivendo il messaggio di eccezione al metodo di scrittura dell'oggetto risposta. Ma voglio una soluzione con la quale l'utente riceverà solo un messaggio di errore generale che qualcosa è andato storto ma dobbiamo ottenere una descrizione dettagliata dell'errore. Mi piacerebbe conoscere le diverse pratiche utilizzate per la gestione delle eccezioni in C#.Metodi per gestire le eccezioni in un progetto Web utilizzando C#

risposta

7

Per il progetto Web e per evitare eventuali eccezioni che vengono spinte verso il basso nel browser, è possibile abilitare il monitoraggio dello stato e anche l'uso delle pagine di errore personalizzate. Se ti aspetti la possibilità di un'eccezione all'interno dell'affermazione, annida semplicemente un altro tentativo di cattura in modo che cada graziosamente.

Nella global.asax anche è possibile iscriversi alla manifestazione Application_Error, che sarà chiamato per un'eccezione non gestita

Andrew

Monitoraggio dello stato in ASP.NET: http://www.4guysfromrolla.com/articles/031407-1.aspx

+0

Sicuramente la strada da percorrere +1 –

1

La scrittura nel registro eventi è una delle opzioni.

2

Registrerei l'errore dettagliato nel mio database e reindirizzare l'utente a una pagina di errore generica.

4

Buon per te per voler risolvere questo. La scrittura di messaggi di eccezione direttamente all'utente può comportare un rischio significativo per la sicurezza: come hai già capito, i messaggi di eccezione possono contenere molte informazioni che potrebbero aiutare un utente malintenzionato ad accedere al tuo sito.

Vorrei dare un'occhiata a ELMAH (Error Logging Modules and Handlers); è un modo semplice per aggiungere la registrazione di errori dettagliati alla tua app web.

1

Come detto REA_ANDREW, utilizzare il monitoraggio dello stato insieme alle pagine di errore personalizzate.

Una cosa che non ha detto esplicitamente è che si dovrebbe evitare lo stile di programmazione che mette i blocchi try/catch attorno a tutto. Health Monitoring registrerà le eccezioni non gestite e le pagine di errore personalizzate visualizzeranno all'utente qualunque cosa tu voglia che l'utente veda sull'errore (se non altro). Ma questo accadrà solo se lo fai non prendi le eccezioni, quindi lasciale sole e lasciale propagare.

Problemi correlati