Methoden zum Behandeln von Ausnahmen in einem Webprojekt mit C #

8

Was ist der beste Weg, Ausnahmen in catch-Anweisungen zu behandeln? Derzeit schreiben wir die Ausnahmebedingungsnachricht an die Schreibmethode des Antwortobjekts. Aber ich möchte eine Lösung, durch die der Benutzer nur eine allgemeine Fehlermeldung erhalten wird, dass etwas schiefgelaufen ist, aber wir müssen eine detaillierte Beschreibung des Fehlers erhalten. Ich würde gerne die verschiedenen Praktiken für die Ausnahmebehandlung in C # kennen lernen.

    
rahul 02.04.2009, 09:54
quelle

5 Antworten

7

Für das Webprojekt und um zu verhindern, dass Ausnahmen in den Browser verschoben werden, könnten Sie die Zustandsüberwachung und die Verwendung von benutzerdefinierten Fehlerseiten aktivieren. Wenn Sie die Möglichkeit einer Ausnahme innerhalb der catch-Anweisung erwarten, verschachteln Sie einfach einen anderen try catch-in, so dass er gnädig überfällt.

In der Datei global.asax können Sie auch das Ereignis Application_Error abonnieren, das für eine unbehandelte Ausnahme

aufgerufen wird

Andrew

Systemüberwachung in ASP.NET: Ссылка

    
REA_ANDREW 02.04.2009, 10:00
quelle
4

Gut für Sie, dass Sie das beheben wollen. Das Ausgeben von Ausnahmebedingungsnachrichten direkt an den Benutzer kann ein erhebliches Sicherheitsrisiko darstellen. Wie Sie bereits festgestellt haben, können Ausnahmebedingungsnachrichten viele Informationen enthalten, die einem böswilligen Benutzer den Zugriff auf Ihre Website erleichtern könnten.

Ich würde einen Blick auf ELMAH werfen (Fehlerprotokollierung von Modulen und Handlern); Es ist eine einfache Möglichkeit, die Protokollierung detaillierter Fehler zu Ihrer Web-App hinzuzufügen.

    
Mike Powell 02.04.2009 10:10
quelle
2

Ich würde den detaillierten Fehler in meiner Datenbank aufzeichnen und den Benutzer auf eine generische Fehlerseite umleiten.

    
Lazarus 02.04.2009 10:00
quelle
1

Das Schreiben in das Ereignisprotokoll ist eine der Optionen.

    
Dmitry Ornatsky 02.04.2009 10:00
quelle
1

Wie REA_ANDREW gesagt hat, verwenden Sie Health Monitoring zusammen mit den benutzerdefinierten Fehlerseiten.

Eine Sache, die er nicht explizit gesagt hat, ist, dass Sie den Stil der Programmierung vermeiden sollten, der try / catch-Blöcke um alles legt. Die Systemüberwachung protokolliert nicht behandelte Ausnahmen, und benutzerdefinierte Fehlerseiten zeigen dem Benutzer an, was immer der Benutzer über den Fehler sehen soll (wenn überhaupt). Aber das wird nur passieren, wenn Sie nicht die Ausnahmen abfangen, also lassen Sie sie einfach in Ruhe und lassen Sie sie propagieren.

    
John Saunders 02.04.2009 13:33
quelle

Tags und Links