2009-06-01 22 views
2

Was ist die beste Vorgehensweise zum Zurückgeben eines Fehlers einer Geschäftsregel in einem BLL? Müsste ich nur Exceptions auslösen und sie in der Präsentationsschicht abfangen, wenn ich irgendein Objekt zurücksende, das irgendwelche Exception-Typ-Informationen enthält?BLL-Fehler Best Practice

Antwort

2

Das Wort "Rückkehr" ist hier schwierig.

Die Haupteigenschaft des Multi-Tier-Designs ist die Orthogonalität. Sie sollten in der Lage sein, die Klassen in Ihrer BLL von einer völlig anderen als der derzeit verwendeten Benutzeroberfläche aus aufzurufen und die Protokollierung vollständig anders zu handhaben.

Wenn eine Ausnahme ohne Benutzereingriff oder Benachrichtigung verarbeitet werden kann, sollten Sie dies in der Regel innerhalb der BLL tun. Wenn die Ausnahme dem Benutzer zur Kenntnis gebracht oder protokolliert werden muss, lassen Sie es zur Benutzeroberfläche übergehen, die Benachrichtigung und Protokollierung implementieren kann, ohne solche Dinge in die BLL zu integrieren.

+3

Es ist auch eine gute Idee, mehrere Ausnahmen (InvalidCastException, SqlException usw.) in einzelne BLL-Ausnahmetypen (MyDatabaseException) zu wickeln, so dass Benutzer bei jedem Aufruf fünfzehn verschiedene Arten von Ausnahmen nicht abfangen müssen. – Will