Ich versuche, die Fehlerbehandlung in einer Anwendung, die ich unterstütze, zu überarbeiten und zu vereinfachen. Wir haben derzeit alle unsere Seiten von einer von uns erstellten Basisklasse geerbt, die wiederum offensichtlich von System.Web.UI.Page erbt. Innerhalb dieser Basisklasse wird die OnError-Methode derzeit überschrieben, und ruft MyBase.OnError auf, und ruft dann eine unserer benutzerdefinierten Protokollierungsmethoden auf.Wann OnError überschreiben?
Ich sehe keinen Vorteil des Überschreibens der OnError-Methode, und ich denke, es wäre besser, die Application_Error-Methode in der Global.asax kümmern sich um die unbehandelte Ausnahme (Protokollierung) und dann den Abschnitt customErrors in Die Konfiguration würde einen Prozess auslösen, um den Benutzer umzuleiten.
On-line sieht es aus wie Leute, die diese Methode ziemlich häufig überschreiben, aber ich sehe keine Notwendigkeit, und this Artikel von MSDN lässt mich dasselbe denken.
Aber noch einmal, warum die OnError-Methode überschreiben? Wenn Sie Informationen im Kontext der Seite verarbeiten müssen, verstehe ich, warum Sie den Fehler in diesem Kontext behandeln möchten (Protokollieren bestimmter Daten auf der Seite, Benutzereingaben, Anzeigen von Meldungen auf dem Bildschirm usw.), aber warum überschreiben die vorhandene OnError-Methode anstelle von Page_Error oder Application_Error? –
page_error stammt von onerror (Page_Load wird von der OnLoad-Methode usw. aufgerufen), deshalb OnError; es ist das gleiche wie Page_Error ... Also die eigentliche Frage ist, warum Seitenfehler vs. App-Fehler ... –
Mit dem Link, den ich oben zur Verfügung gestellt habe, erwähnt der Absatz über dem "global.asax: Application_Error" Abschnitt, dass Code in ein Die OnError Override-Methode ist nicht die gleiche wie die Verwendung von PageError. Also, in Ihrem Fall nehme ich an, dass Sie diese Funktionalität übersteuern, um auf eigene Faust umzuleiten, also ist es wahrscheinlich in Ordnung. In meinem Fall überschreiben wir diese Funktionalität in der OnError-Methode nicht wirklich. Wir führen lediglich eine sehr allgemeine Protokollierung der ausgelösten Ausnahme durch. Ich denke, wir könnten die Protokollierung auf die Anwendungsebene bringen und unsere OnError-Methode entfernen. Danke für deinen Beitrag. –