In der asp.net-Anwendung kann alle Ausnahme, die auftritt und nicht in try catch sind, von application_error behandelt werden.Sollen wir versuchen fangen mit der Funktion, wenn wir nur die Ausnahme protokollieren wollen?
Wenn wir nur die Ausnahme mit ihrem Stack-Trace protokollieren müssen, und wir keine andere Entscheidung/Logik innerhalb des Catch machen müssen, warum sollten wir try catch bei application/bl oder dal layer Funktionen setzen? Gibt es einen Grund, versuchen/fangen mit jeder Datenbank-Aufruf-Funktion?
Zum Beispiel wir Hunderte von Funktion in DAL Schicht haben, die folgenden Code ausführen:
try
{
//open db connection, execute stored procedure
}
catch
{
//log error
}
Falls wir keine Ausnahme von gespeicherten Prozedur erhalten OR in Datenbank-Verbindung zu öffnen, wir eine Ausnahme erhalten, aber wir tun nicht alles außer dem Protokollieren dieser Fehler. Wir haben keine sehr kritische Datenspeicher-/Abrufanforderung. Wir protokollieren Fehler, nur um gewarnt zu werden und beheben Sie es später. Ist das richtig, um jede Funktion zu fangen?
Es gibt einen Grund, "versuchen" und "fangen" unabhängig zu verwenden. Es ist nur ein grundlegender Teil der Programmierung. Also, die Antwort ist ja. –
was ist der Grund? speziell, was wir nicht erreichen können, indem wir die Logging-Ausnahme bei der application_error-Funktion setzen? – maverick
Lassen Sie Ihren Code nicht auf application_error zurückfallen. Jeder Fehler sollte innerhalb des Geltungsbereichs behandelt werden, aus dem er generiert wurde. Application_error ist Ihr letzter Fallback und sollte theoretisch nie erreicht werden. –