Einer der wichtigsten Aspekte sorgfältigen Systemdesigns ist die Behandlung von Ausnahmen (Exception Handling). Ablauf und Behandlung von Ausnahmen sorgen unter Entwicklern häufig für Verwirrung. Der Schlüssel zum Verständnis des Ablaufs von Ausnahmen besteht darin, die Anwendung in Schichten aufzubauen (Application Layering). Dies ist ein objektorientiertes (OO) Designprinzip, das als Kapselung bekannt ist. Durch die korrekte Implementierung der Kapselung zwischen den einzelnen Klassen und Komponenten erfolgt die Behandlung von Ausnahmen beinahe automatisch.
Im Beispielszenario ist die Aufteilung in Schichten recht einfach: Jede Schicht wird durch einen Tier im Framework repräsentiert. Dies bedeutet, dass es eine Datenbankschicht, eine Business-Schicht, eine ASPX-Schicht und eine Web Service-Schicht gibt. Durch die Implementierung einer eigenen Ausnahme-Klasse für jede Schicht können Ausnahmen einfach identifiziert und innerhalb der Anwendung verfolgt werden. Abbildung C veranschaulicht den Ablauf von Ausnahmen in beiden Anwendungen.
Abbildung C: Ablauf der Ausnahmen |
Die einzelnen Schichten lassen sich am einfachsten über die Verknüpfungen der Projekte beschreiben. Einige Komponenten interagieren nur mit bestimmten anderen Komponenten. Dadurch wird sichergestellt, dass der Programmablauf einem vorhersagbaren, hierarchischen Ablaufmuster von oben nach unten folgt. Im Ergebnis bewirkt dieses Designmuster, dass man z. B. sicher sein kann, dass eine von der ASPX-Schicht ausgelöste System.Exception keine Auswirkungen auf die Datenbank- oder Business-Komponente hat. Durch konsequente Umsetzung der Kapselung kann man exakt festlegen, welche Klassen und Methoden von wo aus aufgerufen werden, so dass man einen logischen Ablauf für alle Ausnahmen erzeugen kann.
Nun müssen also die Klassen für die eigenen Ausnahmen erstellt werden. Dazu erstellt man die folgenden Ausnahme-Klassen für beide Anwendungen: Rechtsklick auf die BizTier-Komponente und Auswählen von Add | Add Class (Hinzufügen | Klasse hinzufügen). Als Klassenname gibt man BizTierException.vb ein und kopiert den Code aus Listing D in diese neue Klasse.
Dieselben Schritte wie für die BizTier-Komponente müssen für die DbTier-Komponente durchgeführt werden, die neue Klasse erhält den Namen DbTierException.vb. In diese neue Klasse wird der Code aus Listing E kopiert.
Beide Klassen weisen dieselbe Implementierung auf. Durch Verwendung einer OO-Technik namens Vererbung wird die Klasse System.ApplicationException erweitert und um zwei Konstruktoren ergänzt, die einfach die Parameter an die Basisklasse weiterreichen, indem sie die Parent-Konstruktoren aufrufen. Damit können Ausnahmen erstellt werden, die nur einen Nachrichten-String enthalten, oder Ausnahmen, die mit einer inneren Ausnahme gekoppelt sind.
Neueste Kommentare
Noch keine Kommentare zu Web Services B2B-Implementierung: Komponenten, Ausnahme-Behandlung und Logging
Kommentar hinzufügenVielen Dank für Ihren Kommentar.
Ihr Kommentar wurde gespeichert und wartet auf Moderation.