| Version 3.4.7 |
| Exceptions |
Es gibt viele Exceptions, die bei der Ausführung eines Tests mit QF-Test geworfen werden können. Dieses Kapitel führt alle Exceptions mit ihren typischen Fehlermeldungen und einer kurzen Erklärung auf.
TestException
Dies ist die Basisklasse aller QF-Test Exceptions. Eine konkrete
Exception ist nie von dieser, sondern immer von einer davon
abgeleiteten Klasse. Ein 'Catch' Knoten, dessen
'Exception Klasse' auf TestException gesetzt ist,
fängt alle möglichen Exceptions. Wie in Java selbst sollten Sie
einen solchen 'Catch' nur in Ausnahmefällen
verwenden, da dadurch Exceptions verschleiert werden können, mit
denen zunächst nicht gerechnet wurde.
ComponentNotFoundException
Diese Exception wird geworfen, wenn die Zielkomponente eines Events oder Checks nicht ermittelt werden kann. Auch
das Scheitern eines 'Warten auf Komponente' Knotens führt zu
einer ComponentNotFoundException, sofern dessen
'Warten auf Verschwinden' Attribut nicht gesetzt ist.
Basisklasse: TestException
Meldung: Die Zielkomponente wurde nicht gefunden.
DocumentNotLoadedException
Diese Exception ist eine Variante der ComponentNotFoundException und wird speziell
beim Fehlschlagen eines 'Warten auf Laden des Dokuments' Knotens geworfen.
Basisklasse: ComponentNotFoundException
Meldung: Das Dokument wurde nicht (neu) geladen.
ComponentFoundException
Dies ist das Gegenstück zur ComponentNotFoundException und
wird geworfen, wenn ein 'Warten auf Komponente' mit gesetztem
'Warten auf Verschwinden' Attribut scheitert.
Basisklasse: TestException
Meldung: Die Zielkomponente existiert.
ModalDialogException
Diese Exception wird geworfen, wenn ein Event von einem modalen Dialog blockiert wird. Siehe Option Auf modale Dialoge prüfen.
Basisklasse: TestException
Meldung: Ein modaler Dialog hat diesen Event blockiert. (Plus Information über den Dialog).
ComponentCannotGetFocusException
Diese Exception wird geworfen, wenn die Zielkomponente für einen 'Tastaturevent' oder 'Texteingabe' Knoten ein Textfeld ist, das aus irgendwelchen Gründen den Tastaturfokus nicht erhalten kann. Mit JDK 1.4 führt dies dazu, dass der Event nicht an die Komponente übermittelt werden kann.
Basisklasse: TestException
Meldung: Die Zielkomponente kann den Tastaturfokus nicht erhalten.
DisabledComponentException
Diese Exception wird geworfen, wenn die Zielkomponente für einen 'Mausevent', 'Tastaturevent' oder 'Texteingabe' Knoten deaktiviert ist. In diesem Fall würden die Events einfach ignoriert und damit höchstwahrscheinlich zu Fehlern im weiteren Verlauf des Tests führen.
Aus Gründen der Rückwärtskompatibilität kann diese Exception durch Deaktivieren der Option DisabledComponentExceptions werfen unterdrückt werden.
Basisklasse: TestException
Meldung: Die Zielkomponente ist deaktiviert und kann daher keine Events empfangen.
BusyPaneException
Diese Exception wird geworfen, wenn die Zielkomponente für einen 'Mausevent', 'Tastaturevent' oder 'Texteingabe' Knoten von einer GlassPane mit einem 'busy' Mauszeiger verdeckt ist. In diesem Fall würden die Events normalerweise von der GlassPane abgefangen werden und damit höchstwahrscheinlich zu Fehlern im weiteren Verlauf des Tests führen. Die Option Warten bei 'busy' GlassPane (ms) legt fest, wie lange QF-Test auf das Verschwinden der GlassPane wartet, bevor die Exception geworfen wird.
Basisklasse: TestException
Meldung: Die Zielkomponente wird von einer 'busy' GlassPane verdeckt.
InvisibleDnDTargetException
Diese Exception wird geworfen, wenn der Zielpunkt in der Komponente für einen
'Mausevent' vom Typ DRAG_FROM, DRAG_OVER oder
DROP_TO für eine Drag&Drop Operation nicht sichtbar ist und nicht durch
Scrollen der Zielkomponente sichtbar gemacht werden kann.
Basisklasse: TestException
Meldung: Der Zielpunkt der Drag&Drop Operation konnte nicht sichtbar gemacht werden.
DeadlockTimeoutException
Diese Exception wird geworfen, wenn das SUT für einen vorgegebenen Zeitraum nicht reagiert. Dieser Zeitraum wird durch die Option Erkennen von Deadlocks (s) festgelegt.
Basisklasse: TestException
Meldung: Das Zeitlimit für die Operation wurde überschritten. Es ist sehr wahrscheinlich, dass der Client '...' sich in einem Deadlock befindet.
VariableException
Diese Exception wird nicht selbst geworfen, sondern ist die Basisklasse für verschiedene Exceptions, die im Zusammenhang mit Variablenexpansion geworfen werden können.
Basisklasse: TestException
BadVariableSyntaxException
Diese Exception wird geworfen, wenn ein Ausdruck bei der Variablenexpansion keine gültige Syntax aufweist, z.B. weil die schließende Klammer fehlt.
Basisklasse: VariableException
Meldung: Ungültige Variablensyntax: '...'
MissingPropertiesException
Diese Exception wird geworfen, wenn keine Properties oder kein
ResourceBundle für die Gruppe einer erweiterten Variablenexpansion
der Form ${Gruppe:Name} verfügbar
sind (siehe auch 'Ressourcen laden' und
'Properties laden').
Basisklasse: VariableException
Meldung: Unter dem Namen '...' waren keine Properties oder Ressourcen verfügbar.
MissingPropertyException
Diese Exception wird geworfen, wenn der Name bei einer erweiterten
Variablenexpansion der Form
${Gruppe:Name} nicht verfügbar ist
(siehe auch 'Ressourcen laden' und
'Properties laden').
Basisklasse: VariableException
Meldung: Es gibt keine Property oder Ressource namens '...' in '...'.
RecursiveVariableException
Diese Exception wird geworfen, wenn die Expansion einer Variablen
zu Rekursion führt, z.B. wenn Sie eine Variable namens
x auf den Wert $(y) und die Variable
namens y auf $(x) setzen und versuchen,
den Wert $(x) zu expandieren.
Basisklasse: VariableException
Meldung: Der Wert der Variable '...' konnte aufgrund rekursiver Zuweisung nicht ausgewertet werden.
UnboundVariableException
Diese Exception wird geworfen, wenn eine Variable bei einer Variablenexpansion nicht existiert.
Basisklasse: VariableException
Meldung: Die Variable '...' ist unbekannt.
VariableNumberException
Diese Exception wird geworfen, wenn das Ergebnis einer Variablenexpansion für ein numerisches Attribut keine Zahl darstellt.
Basisklasse: VariableException
Meldung: Der Wert '...' ist keine gültige Zahl.
BadExpressionException
Diese Exception wird geworfen, wenn ein Ausdruck der Form $[...] fehlerhaft ist (vgl. Abschnitt 8.5).
Basisklasse: ScriptException
Meldung: Der Ausdruck '...' ist ungültig.
BadTestException
Diese Exception wird geworfen, wenn die 'Bedingung' eines 'If' oder 'Elseif' Knotens eine ungültige Syntax aufweist.
Basisklasse: ScriptException
Meldung: Der Ausdruck '...' ist keine gültige Bedingung.
BadRegexpException
Diese Exception wird geworfen, wenn ein regulärer Ausdruck keine gültige Syntax aufweist (vgl Abschnitt 36.4), z.B. bei einem 'Element' oder 'Check Text' Knoten.
Basisklasse: TestException
Meldung: Der Wert '...' ist kein gültiger regulärer Ausdruck.
BadRangeException
Diese Exception wird geworfen, wenn das Attribut 'Iterationsbereiche' eines 'Daten' Knotens ungültige Syntax aufweist oder einen Index außerhalb des Datenbereichs enthält.
Basisklasse: TestException
Meldung:
Ungültige Syntax für Iterationsbereiche: '...'.
Ungültiger Index im Iterationsbereich: '...'.
CannotExecuteException
Diese Exception wird geworfen, wenn der Start eines Prozesses durch einen 'Java SUT Client starten' Knoten fehlschlägt.
Basisklasse: TestException
Meldung: Fehler beim Starten des Prozesses '...'. Bitte überprüfen Sie die Angaben und die PATH Einstellung.
InvalidDirectoryException
Diese Exception wird geworfen, wenn das 'Verzeichnis' Attribut eines 'Java SUT Client starten' Knotens auf ein nicht existierendes Verzeichnis verweist.
Basisklasse: TestException
Meldung: Das Verzeichnis '...' existiert nicht.
CheckFailedException
Diese Exception wird geworfen, wenn ein Check fehlschlägt, dessen 'Im Fehlerfall Exception werfen' Attribut gesetzt ist.
Basisklasse: TestException
Meldung: Der Check für Client '...' ist fehlgeschlagen. Erwartet: '...'. Erhalten: '...'.
CheckNotSupportedException
Wie im Abschnitt über Checks beschrieben, kann sich jeder Check nur auf bestimmte Komponenten beziehen. Diese Exception wird geworfen, wenn die Zielkomponente eines Checks für diesen keinen Sinn ergibt.
Basisklasse: TestException
Meldung: Dieser Check ist für eine Komponente der Klasse '...' nicht möglich.
OperationNotSupportedException
Diese Exception wird geworfen, wenn eine Operation wie 'Text auslesen' für die angegebene Zielkomponente nicht möglich ist.
Basisklasse: TestException
Meldung: Diese Operation ist für eine Komponente der Klasse '...' nicht möglich.
BadComponentException
Diese Exception wird geworfen, wenn eine Komponente für einen Event keinen Sinn ergibt, z.B. etwas anderes als ein Fenster für einen 'Fensterevent'.
Basisklasse: TestException
Meldung: Die Komponente der Klasse '...' ist kein Fenster.
IndexFormatException
Diese Exception wird geworfen, wenn der Index eines Unterelements in einem ungültigen Format angegeben ist (vgl. Abschnitt 7.3).
Basisklasse: TestException
Meldung: Der Wert '...' ist kein gültiger Textindex/Zahl/regulärer Ausdruck.
IndexFoundException
Diese Exception wird geworfen, wenn ein Unterelement gefunden wird, obwohl bei der Ausführung eines 'Warten auf Komponente' Knotens auf dessen Abwesenheit geprüft wird.
Basisklasse: ComponentFoundException
Meldung: Kein Element für Index '...' gefunden.
IndexNotFoundException
Diese Exception wird geworfen, wenn kein Unterelement für einen angegebenen Index gefunden wurde.
Basisklasse: ComponentNotFoundException
Meldung: Kein Element für Index '...' gefunden.
IndexRequiredException
Diese Exception wird geworfen, wenn ein für eine Operation
notwendiger Index nicht angegeben wurden, z.B. für einen
'Check Text' Knoten für einen JTree.
Basisklasse: TestException
Meldung: Diese Operation erfordert einen Index.
UnexpectedIndexException
Diese Exception wird geworfen, wenn ein Index für ein Unterelement
angegeben ist, obwohl eine Operation keinen benötigt, z.B. für
einen 'Check Elemente' Knoten für einen JTree.
Basisklasse: TestException
Meldung: Diese Operation unterstützt für eine Komponente der Klasse '...' keinen Index.
ClientNotConnectedException
Diese Exception wird geworfen, wenn keine Verbindung zum
angegebenen SUT Client für eine Operation besteht, obwohl
im Gegensatz zur NoSuchClientException ein Prozess unter
diesem Namen verfügbar ist.
Basisklasse: TestException
Meldung: Es besteht keine Verbindung mit Client '...'.
NoSuchClientException
Diese Exception wird geworfen, wenn der angegebene SUT Client für eine Operation nicht existiert.
Basisklasse: TestException
Meldung: Client '...' existiert nicht.
DuplicateClientException
Diese Exception wird geworfen, wenn versucht wird, mehr als einen Prozess gleichzeitig unter dem selben Namen zu starten.
Basisklasse: TestException
Meldung: Es wurde bereits ein Client namens '...' gestartet.
UnexpectedClientException
Diese Exception wird geworfen, wenn im SUT eine unerwartete Exception beim Abspielen eines Events geworfen wird. Sofern es sich dabei nicht um einen Bug in QF-Test handelt, deutet dies auf ein echtes Problem im SUT hin.
Basisklasse: TestException
Meldung: Unerwartete Exception in Client '...'.
ClientNotTerminatedException
Diese Exception wird geworfen, wenn bei der Ausführung eines 'Warten auf Programmende' Knotens der Prozess nicht terminiert.
Basisklasse: TestException
Meldung: Der Prozess '...' wurde nicht beendet.
UnexpectedExitCodeException
Diese Exception wird geworfen, wenn der Exitcode eines Prozesses nicht den Vorgaben des Attributs 'Erwartetes Ergebnis' eines 'Warten auf Programmende' Knotens entspricht.
Basisklasse: TestException
Meldung: Falscher Exitcode.
BadExitCodeException
Diese Exception wird geworfen, wenn das Attribut 'Erwartetes Ergebnis' eines 'Warten auf Programmende' Knotens nicht der Spezifikation entspricht.
Basisklasse: TestException
Meldung: Ungültiger Exitcode '...'. Bitte verwenden Sie '==', '!=', '<' oder '>' gefolgt von einer Zahl.
ComponentIdMismatchException
Diese Exception wird geworfen, wenn das 'Id der Komponente' Attribut eines Knotens auf einen Knoten verweist, der nicht vom Typ 'Fenster', 'Komponente' oder 'Element' ist.
Basisklasse: TestException
Meldung: Der Knoten '...' mit der Id '...' ist keine Komponente.
UnresolvedComponentIdException
Diese Exception wird geworfen, wenn das Ziel eines 'Id der Komponente' Attributs nicht existiert.
Basisklasse: TestException
Meldung: Es gibt keine Komponente mit der Id '...'.
TestNotFoundException
Diese Exception wird geworfen, wenn die 'Test' für einen 'Testaufruf' nicht existiert.
Basisklasse: TestException
Meldung: Der Test '...' ist nicht vorhanden.
DependencyNotFoundException
Diese Exception wird geworfen, wenn die 'Abhängigkeit' für einen 'Bezug auf Abhängigkeit' nicht existiert.
Basisklasse: TestException
Meldung: Die Abhängigkeit '...' ist nicht vorhanden.
ProcedureNotFoundException
Diese Exception wird geworfen, wenn die 'Prozedur' für einen 'Prozeduraufruf' nicht existiert.
Basisklasse: TestException
Meldung: Die Prozedur '...' ist nicht vorhanden.
StackOverflowException
Diese Exception wird geworfen, wenn die Verschachtelungstiefe von 'Prozeduraufrufen' den Wert der Option Größe des Callstacks überschreitet, was auf eine endlose Rekursion von Prozeduraufrufen hindeutet.
Basisklasse: TestException
Meldung: Zu viele verschachtelte Prozeduraufrufe.
UserException
Diese Exception wird explizit durch einen 'Throw' Knoten geworfen.
Basisklasse: TestException
Meldung: Die 'Meldung für die Exception' des 'Throw' Knotens.
CannotRethrowException
Diese Exception wird geworfen, wenn versucht wird, durch einen 'Rethrow' Knoten eine Exception erneut zu werfen, ohne dass vorher eine Exception durch einen 'Catch' Knoten abgefangen wurde.
Basisklasse: TestException
Meldung: Erneutes werfen einer abgefangenen Exception ist nur innerhalb eines Catch Knotens möglich.
ScriptException
Diese Exception wird geworfen, wenn ein Script einen Fehler liefert.
Basisklasse: TestException
Meldung: Das Skript ist mit der folgenden Meldung fehlgeschlagen:...
BreakException
Dies ist keine normale TestException und sie kann nicht von einem
'Catch' Knoten gefangen werden. Sie wird von einem 'Break'
Knoten geworfen um aus einer Schleife auszubrechen. In einem Skript erfüllt das
Werfen einer BreakException den selben Zweck. Wird sie ausserhalb einer Schleife
geworfen, löst eine BreakException einen Fehler aus.
Basisklasse: TestException
Meldung: Es wurde ein Break ausserhalb einer Schleife ausgelöst.
ReturnException
Dies ist keine normale TestException und sie kann nicht von einem
'Catch' Knoten gefangen werden. Sie wird von einem 'Return'
Knoten geworfen um aus einer 'Prozedur' zurückzukehren. In einem Skript
erfüllt das Werfen einer ReturnException den selben Zweck. Wird sie ausserhalb
einer 'Prozedur' geworfen, löst eine ReturnException einen Fehler aus.
Basisklasse: TestException
Meldung: Es wurde ein Return ausserhalb einer Prozedur ausgelöst.
TestOutOfMemoryException
Dies ist eine spezielle Exception, die geworfen wird, wenn QF-Test feststellt, dass der für die Testausführung zur Verfügung stehende Speicher zu Ende geht. Die Exception führt zum sofortigen Abbruch des Testlaufs und kann nicht gefangen werden, da QF-Test ohne Speicher nicht viel tun kann, um sie zu behandeln. Allerdings versucht QF-Test, sich eine kleine Speicherreserve zu erhalten und zumindest das Protokoll zu speichern.
| Letzte Änderung: 23.04.2012 Copyright © 1999-2012 Quality First Software GmbH |