ASP.Net Exceptions - Fangen Sie in der Seiten-oder der Griff in die Globale.asax (Application_Error -)
Suche nach best-practice konzentriert sich die Antworten hier mit Erklärungen.
Sollte die Präsentationsschicht einer ASP.Net app abfangen und behandeln Ausnahmen, die von der business-Schicht oder sollten diese erlaubt sein zu sprudeln, wo Sie können alle die angemeldet werden und behandelt werden einheitlich in der Global.ascx's Application_Error handler?
ie..
protected void Application_Error(object sender, EventArgs e)
{
logExceptionDetails(Server.GetLastError());
HttpContext.Current.Server.Transfer("~/Error.aspx");;
}
Dank
Du musst angemeldet sein, um einen Kommentar abzugeben.
Mein Ansatz für die Ausnahmen ist, ließ Sie passieren und protokollieren Sie mit Elmah, und verwenden Sie die integrierte in Benutzerdefinierte Fehlerseite Mechanismus zu informieren, mein user, dass etwas schief ging.
Alle, die getan werden kann mit null-code (konfiguriert im web.config).
Gut, wenn Sie brauchen, um wirklich "Griff" die Ausnahme ist, dann müssen Sie try-catch-Blöcke im code, wo die Ausnahmen passieren könnte.
Welche Methode Sie wählen, hängt davon ab, wie oft Sie erwarten, dass die Veranstaltung auftreten. Wenn das Ereignis wirklich außergewöhnlich und ist ein Fehler (wie ein unerwartetes end-of-file), mit exception handling ist besser, weil weniger code ausgeführt wird, im normal Fall. Wenn das Ereignis geschieht routinemäßig, mit der programmatischen Methode auf Fehler überprüfen ist besser.
Jedoch, wenn Sie auf Protokollierung von Ausnahmen, die wurden zu "nicht erfasste", dann sollten Sie Globale Error-Ereignis, wie Sie schon gezeigt.Dies ist die beste Praxis. In der Tat, wenn Sie implementieren diese als ein HttpModule dann ist dein Exception-handling ist non-intrusive und kann eingesteckt in andere Anwendungen oder entfernt werden, einfach durch ändern der web.config-Datei.
Werfen Sie einen Blick auf diese Artikel auf 4GuysFromRolla
http://www.4guysfromrolla.com/articles/081209-1.aspx