Was ist die vorgeschlagene Art und Weise Ausnahmemeldungen auf UI zu zeigen, die in Business-Schicht produziert wurden?

StackOverflow https://stackoverflow.com/questions/2766309

Frage

Gibt es ein Muster OR ‚Best Practice‘ auf Benutzer-freundliche Nachrichten in der Präsentationsschicht zu schaffen, indem sie Ausnahmen verwendet, die von der Business Layer geworfen wurden?

Eigentlich in vielen Fällen ziehe ich es Anwendungsausnahmen zu werfen und diese zwingt mich, sie auf UI zu fangen (aspx.cs Seiten). Und wenn der Prozess ist komplex, die viele verschiedene Arten von Ausnahmen produzieren kann ich viele catch-Blöcke haben muß, um bestimmte Fehlermeldungen zu erzeugen.

Gibt es einen besseren Weg, um Ihren Geist zu kommen? Ein Muster vielleicht für Ähnliche Fälle?

Dank

War es hilfreich?

Lösung

Sie können eine benutzerdefinierte Exception-Klasse verwenden, um Fehler über Ausnahme von der UI-Ebene zurückzukehren. Diese benutzerdefinierten Ausnahmen könnten dann eine Fehlermeldung enthalten, die den Benutzer sinnvoll sein wird, so dass Sie, dass anzeigen können, wie würden Sie andere Fehlermeldung.

Auf diese Weise brauchen Sie nur einen einzigen Ausnahme-Handler in der Benutzeroberfläche, statt viele für jede Art von Fehlern ...

Andere Tipps

Erstens: Ich denke, es empfiehlt sich, nur zu fangen Ausnahmen in Code, den ich zu dieser Zeit verarbeiten kann. Wenn ich nicht nur damit umgehen kann lassen auf höhere Ebene zu fördern.

Zweitens: Es besteht die Möglichkeit zu fangen Ausnahmen global:

public static void RegisterExceptionHandler()
{
    Application.ThreadException += new System.Threading.ThreadExceptionEventHandler    (Application_UIThreadException);
    Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);

    AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
}

In dieser Ausnahme Methoden alle Ausnahmen der Handhabung sind gefangen wurden nicht behandelt. Hier können Sie den Benutzer benachrichtigen, dass etwas „unerwartet“ happend hat.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top