 |
 | |  |  | | Beschreibung |  | Mit Sprungmarken lässt sich der Kontrollfluss nur lokal beeinflussen. In manchen Fällen reicht dies aber nicht aus, z. B. wenn bei einem Verarbeitungsfehler die ganze
Aktivität abgebrochen werden muss, um eine Fehlerbehandlung außerhalb der Aktivität
durchzuführen. Für diesen Fall gibt es in Aktivitätsdiagrammen Ausnahmen (engl.: exceptions). Eine Ausnahme ist ein wohldefinierter nicht-lokaler Kontrollfluss. Zu einer Ausnahme gehören zwei Dinge: Zum einen muss die Ausnahme ausgelöst werden (exception raising), zum anderen muss sie wieder abgefangen und behandelt werden
(exception handling).
Abbildung 1: Ein geschützter Knoten löst eine Ausnahme aus, die von einem Auffangknoten behandelt wird (links); die gleiche Aussage in Pin-Notation (rechts)
Innerhalb eines protected-Node (dt.: geschützter Knoten) wird eine Ausnahme ausgelöst und das so erzeugte Ausnahme-Objekt wird von einem ExceptionHandler (dt.: Auffangknoten) entgegengenommen. Der Auffangknoten kann wiederum Ausnahmen auslösen, so dass ganze Ketten von Ausnahmebehandlungen entstehen können. Eine Ausnahme kann im Wesentlichen auf einem von vier Wegen ausgelöst werden.
Abbildung 2: Ausnahmen können auf vier Wegen ausgelöst werden: direkt, durch externes Ereignis, durch Termin und durch Fallunterscheidung
Externes Ereignis
Ein Event (dt.: Ereignis) tritt außerhalb des gerade betrachteten Bereichs auf und wirkt auf den Ablauf. Dies ist z. B. der Fall beim Abbruch Geschäftsprozesses oder beim Prozesswechsel im Betriebssystem.
Termin
Ein TimeEvent (dt.: Termin) wird fällig und soll eine spezielle Verarbeitung
auslösen. Dies ist z. B. der Fall beim Erreichen einer Frist in einem Geschäftsprozess (z. B. könnte ein Buchungsprozess nach einer gewissen Frist ohne Fortschritt abgebrochen werden). Termine werden durch eine stilisierte Sanduhr dargestellt.
Fallunterscheidung
Außerdem kann eine Ausnahme gezielt durch Fallunterscheidung ausgelöst werden, z. B. wenn ein Fehler erkannt wird, der nicht lokal behandelt werden kann oder soll.
Aktion
Schließlich kann eine Ausnahme auch durch eine normale Aktion explizit ausgelöst werden, z. B. wenn nach einem der anderen genannten Gründe für eine Ausnahme das Ausnahme-Datenobjekt erst noch hergestellt werden muss.
In der Abbildung 3 wird auch eine alternative Syntax für das Auslösen einer Ausnahme gezeigt: ein regulärer Kontrollflusspfeil mit einem Blitz-Symbol.
Abbildung 3: "Gepäckstück prüfen" löst die Ausnahme "GepäckFehler" aus, "Gepäck aufgeben" behandelt sie nicht, so dass sie nach "Einchecken (Automat)" progagiert wird, wo sie schließlich abgefangen wird
Nach der Beschreibung aus Tabelle 9.5 (siehe UML 2 für Studenten ist ein Schritt im Ablauf des Geschäftsprozesses „Einchecken (Automat)“ der Nutzfall „Gepäck aufgeben“, der wiederum als einen seiner Schritte „Gepäckstück prüfen“ enthält. Diese Prüfung möge einen Fehler erweisen können, z. B. dass ein Gepäckstück zu schwer ist oder dass alle von einem Passagier aufgegebenen Gepäckstücke zusammen zu schwer sind.
Abbildung 4: Verschiedene Arten von Fehlern, die im AAA-System auftreten können
Die Aktivität „Gepäck prüfen“ löst daraufhin die Ausnahme „GepäckFehler“ aus, wobei die Art des Fehlers durch einen String näher beschrieben ist. Diese Ausnahme wird innerhalb von „Gepäck aufgeben“ nicht abgefangen, so dass die ganze Aktivität abgebrochen und die Ausnahme in der Aufrufhierarchie nach oben propagiert wird.
Zurück zum Überblick Aktivitäten UML 2.0 (Überblick)
Nächster Gliederungspunkt Unterbrechungsbereiche
|  |
 | |  |  | |  | |  | |  |  |  | | Zu dieser Seite wurden noch keine Kommentare oder Bewertungen abgegeben. |
|
|  | | |