Was ist der beste Weg, um 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.Methoden zum Behandeln von Ausnahmen in einem Webprojekt mit C#
Antwort
Für das Webprojekt und um zu verhindern, dass Ausnahmen an den Browser weitergeleitet werden, können Sie Health Monitoring und auch die Verwendung von benutzerdefinierten Fehlerseiten aktivieren. Wenn Sie die Möglichkeit einer Ausnahme in der catch-Anweisung erwarten, verschachteln Sie einfach einen anderen try catch-in, so dass er gnädig überfällt.
Im global.asax abonnieren Sie können auch auf die Application_Error Veranstaltung, die für eine nicht behandelte Ausnahme
Andrew
Health Monitoring in ASP.NET aufgerufen wird: http://www.4guysfromrolla.com/articles/031407-1.aspx
Schreiben in Ereignisprotokoll ist eine der Optionen.
Ich würde den detaillierten Fehler in meiner Datenbank aufzeichnen und den Benutzer auf eine allgemeine Fehlerseite umleiten.
Gut für Sie um das zu beheben. Das direkte Schreiben von Ausnahmebedingungsnachrichten 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 (Fehlerprotokollierung Module und Handler); Es ist eine einfache Möglichkeit, die Protokollierung detaillierter Fehler zu Ihrer Web-App hinzuzufügen.
Wie REA_ANDREW sagte, 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 fangen die Ausnahmen, so lassen Sie sie in Ruhe und lassen Sie sie propagieren.
- 1. Behandeln von benutzerdefinierten C++ - Ausnahmen in Cython
- 2. Behandeln von Ausnahmen in dem Kopierzuweisungsoperator (C++)
- 3. Behandeln von Ausnahmen in MDI-Formularen
- 4. Mehrere Ausnahmen behandeln
- 5. wie Ausnahmen in Python behandeln
- 6. Bewährtes Verfahren zum Speichern von Mediendateien in einem großen Webprojekt
- 7. Behandeln von Ausnahmen von Java-ExecutorService-Tasks
- 8. Python mehrere Ausnahmen behandeln
- 9. Kann Objective-C oder Objective C++ C++ - Ausnahmen behandeln?
- 10. Wie kann ich Ausnahmen in einem Listenverständnis in Python behandeln?
- 11. Verschiedene Ausnahmen desselben Typs in Java behandeln?
- 12. Behandeln von Ausnahmen im Forked-Prozess
- 13. vcl Methoden + Ausnahmen korrupten Speicher mit bcc64
- 14. Können C++ streambuf-Methoden Ausnahmen auslösen?
- 15. Behandeln von Ausnahmen während eines ASP.NET-Anforderungslebenszyklus
- 16. Bewährte Methoden: Ausnahmen von den Eigenschaften werfen
- 17. Gemeinsame Teile von Ausnahmen gemeinsam behandeln
- 18. So behandeln Sie Ausnahmen in der Konsolenanwendung
- 19. Kann ich geworfene Ausnahmen in XAML behandeln?
- 20. Mybatis zum Ausdrucken konfigurieren sql in einem Webprojekt fehlgeschlagen
- 21. C# Performance-Methoden zum Empfangen von Daten aus einem Socket?
- 22. Wie Abfangen und Behandeln von Ausnahmen in Java ExecutorService
- 23. Auswerfen und Behandeln von Ausnahmen in R6RS Schema
- 24. Wie behandeln Sie "unmögliche" Ausnahmen in Java?
- 25. Korrekter Weg, Ausnahmen in Python zu behandeln?
- 26. Wie Datei herunterladen und Ausnahmen richtig behandeln?
- 27. Behandeln von Zeichenfolgen zum Einfügen in XElement
- 28. Behandeln von Ausnahmen ohne try-Block in Pythons interaktiver Shell
- 29. So behandeln Sie Menüeinträge in C# zum Übergeben von Werten
- 30. Wie behandeln Laufzeitausnahmen in einer Kette von Methoden?
Definitiv der Weg zu gehen +1 –