Ausnahmen

Alle Fehler werden mit Hilfe eines Exception-Objekts gemeldet, das eine Unterklasse des vom WVCM definierten Exception-Objekts ist. Aus einer solchen Ausnahme kann der Client die folgenden Informationen entnehmen:

Jede Operation definiert eine Reihe von Vorbedingungen, die erfüllt sein müssen, damit die Operation erfolgreich ausgeführt werden kann. So muss eine Ressource, deren Eigenschaften gelesen werden sollen, vorhanden sein, und eine Ressource, die denselben Namen wie eine zu erstellende Ressource hat, darf es nicht geben. Eine Ressource, die ausgecheckt werden soll, muss versionsgesteuert und eingecheckt sein. Die Nichterfüllung solcher Vorbedingungen hat zur Folge, dass die Operation eine Ausnahme auslöst.

Operationen können häufig auf eine Gruppe von Ressourcen angewendet werden. Schlägt die Operation für eine der Ressourcen fehl, wird eine Ausnahme ausgelöst. (Das Exception-Objekt meldet die erfolgreichen Verläufe der Operation.)

Probleme, die der Server beim Lesen oder Schreiben der Eigenschaften bzw. Metaeigenschaften einer Ressource feststellt, führen nicht dazu, dass eine Rational-CM-API-Operation eine Ausnahme auslöst. Die Ausnahme wird stattdessen der Eigenschaft innerhalb des zurückgegebenen Proxys zugeordnet. Erst wenn der Client versucht, diesen Eigenschaftswert aus dem Proxy zu extrahieren, wird die Ausnahme ausgelöst. Bevor der Client den Eigenschaftswert extrahiert, kann er den Proxy auch befragen, um festzustellen, ob Probleme vorliegen, und die Ausnahme empfangen, ohne dass sie ausgelöst wird. Siehe Artikel Zusätzliche Informationen zu Eigenschaften

Zur Rational CM API gehören unter anderem folgende Hauptarten von Ausnahmen:

StpException

StpException ist eine Erweiterung zu WvcmException und die Basisklasse aller geprüften Ausnahmen, die von der Rational CM API ausgelöst werden. Alle Implementierungen von Methoden, die im WVCM definiert sind, lösen WvcmException aus. Alle öffentlichen Methoden der Rational CM API, die Erweiterungen zum WVCM sind, lösen ebenfalls WvcmException aus. Die Implementierungen aller dieser Methoden lösen jedoch konsistent nur StpExceptions aus und keine WvcmExceptions. Es gelten folgende Konventionen:
  • In einer Methodendeklaration (sei es für eine öffentliche oder eine andere Methode) wird nie eine StpException ausgelöst. Selbst wenn eine Methode eine StpException auslöst, wird sie deklariert, als würde sie eine WvcmException auslösen.
  • Eine Methode löst nie eine neue WvcmException aus. Obwohl die Ausnahme als eine WvcmException ausgedrückt werden kann, wird sie stets als neue StpException ausgelöst.

StpPropertyException

StpPropertyException erweitert StpExtension und ist die Basis-Exception-Klasse für Fehler im Zusammenhang mit dem Lesen oder Schreiben von Ressourceneigenschaften.

Nachdem ein Eigenschaftswert von einem Server angefordert wurde, wird der Name dem Ergebnis zugeordnet und in einem Proxy gespeichert. War der Abrufversuch erfolgreich, wird dieser Name dem abgerufenen Wert zugeordnet. Bei einem nicht erfolgreichen Abrufversuch wird der Name Statusinformationen (in Form eines StpPropertyException-Objekts) zugeordnet.

StpPartialResultsException

StpPartialResultsException erweitert StpPropertyException und wird verwendet, um das Fehlschlagen einer Operation oder einer Eigenschaft für mehrere Ressourcen zu melden. Diese Ausnahme wird als Ersatz für die ResourceList verwendet, die normalerweise von der Operation oder Eigenschaft zurückgegeben wird. Sie enthält eine ResourceList mit den Proxys für die erfolgreich verarbeiteten Ressourcen und eine Liste mit StpExceptions, die jeweils einer Ressource entsprechen, für die die Operation gescheitert ist. Details hierzu können Sie den Javadoc-Informationen entnehmen.


Feedback