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.
Wenn Sie mit Exceptions in Skripten arbeiten wollen, werfen Sie bitte ein Blick in Abschnitt 50.10.
-
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
-
ScopeNotFoundException
-
Diese Exception wird geworfen, wenn die Zielkomponente für den expliziten Scope eines Events oder Checks nicht ermittelt werden kann. Auch das Scheitern eines Warten auf Komponente Knotens mit einem expliziten Scope führt zu einer
ScopeNotFoundException
, sofern dessen Warten auf Verschwinden Attribut nicht gesetzt ist.Basisklasse:
ComponentNotFoundException
-
DocumentNotLoadedException
-
Diese Exception ist eine Variante der
ComponentNotFoundException
und wird speziell beim Fehlschlagen eines Warten auf Laden des Dokuments Knotens geworfen.Basisklasse:
ComponentNotFoundException
-
PageNotFoundException
-
Diese Exception ist eine Variante der
ComponentNotFoundException
und wird speziell beim Fehlschlagen eines Auswahl Knotens geworfen, wenn in einem PDF-Dokument die anzuzeigende Seite nicht gefunden wurde.Basisklasse:
ComponentNotFoundException
-
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
-
ModalDialogException
-
Diese Exception wird geworfen, wenn ein Event von einem modalen Dialog blockiert wird. Siehe Option Auf modale Dialoge prüfen.
Basisklasse:
TestException
-
ComponentCannotGetFocusException
-
Hinweis Diese Ausnahme ist veraltet und sollte nicht mehr auftreten.
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
-
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
-
DisabledComponentStepException
-
Diese Exception wird geworfen, wenn die Zielkomponente für einen Mausevent, Tastaturevent oder Texteingabe Knoten unter Fenster und Komponenten deaktiviert ist.
Basisklasse:
TestException
-
BadItemException
-
Diese Exception wird von Item-Resolvern geworfen, wenn der Typ des Elements und des Items nicht passen.
Basisklasse:
TestException
-
ExecutionTimeoutExpiredException
-
Diese Exception wird geworfen, wenn die angegebene maximale Ausführungszeit eines Knotens abgelaufen ist.
Basisklasse:
TestException
-
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
-
InvisibleDnDTargetException
-
Diese Exception wird geworfen, wenn der Zielpunkt in der Komponente für einen Mausevent vom Typ
DRAG_FROM
,DRAG_OVER
oderDROP_TO
für eine Drag&Drop Operation nicht sichtbar ist und nicht durch Scrollen der Zielkomponente sichtbar gemacht werden kann.Basisklasse:
TestException
-
InvisibleTargetComponentException
-
Diese Exception wird geworfen, wenn die Zielkomponente unsichtbar ist.
Basisklasse:
ComponentNotFoundException
-
InvisibleTargetItemException
-
Diese Exception wird geworfen, wenn zwar die umgebende Zielkomponente sichtbar ist, aber das Zielelement darin unsichtbar.
Basisklasse:
IndexNotFoundException
-
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
-
DownloadNotCompleteException
-
Diese Exception wird geworfen, wenn auf das Herunterladen eines Dokuments gewartet wird, dies aber nicht abgeschlossen wurde.
Basisklasse:
ComponentNotFoundException
-
DownloadStillActiveException
-
Diese Exception wird geworfen, wenn versucht wird, eine Datei herunter zu laden, die noch durch einen anderen Download blockiert ist.
Basisklasse:
ComponentNotFoundException
-
NoSuchDownloadException
-
Diese Exception wird geworfen, wenn auf einen Download gewartet wird, bei dem das Herunterladen nicht gestartet hat.
Basisklasse:
ComponentNotFoundException
-
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
-
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
-
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
-
ReadOnlyPropertyException
-
9.0+ Diese Exception wird geworfen, wenn versucht wird, einen Wert in einer speziellen Gruppe zu ändern, bei dem dies nicht möglich ist. (siehe Spezielle Gruppen).
Basisklasse:
VariableException
-
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 namensy
auf$(x)
setzen und versuchen, den Wert$(x)
zu expandieren.Basisklasse:
VariableException
-
UnboundVariableException
-
Diese Exception wird geworfen, wenn eine Variable bei einer Variablenexpansion nicht existiert.
Basisklasse:
VariableException
-
VariableNumberException
-
Diese Exception wird geworfen, wenn das Ergebnis einer Variablenexpansion für ein numerisches Attribut keine Zahl darstellt.
Basisklasse:
VariableException
-
BadExpressionException
-
Diese Exception wird geworfen, wenn ein Ausdruck der Form $[...] fehlerhaft ist (vgl. Abschnitt 11.2).
Basisklasse:
ScriptException
-
BadTestException
-
Diese Exception wird geworfen, wenn die Bedingung eines If oder Elseif Knotens eine ungültige Syntax aufweist.
Basisklasse:
ScriptException
-
BadRegexpException
-
Diese Exception wird geworfen, wenn ein regulärer Ausdruck keine gültige Syntax aufweist (vgl Abschnitt 49.3), z.B. bei einem Element oder Check Text Knoten.
Basisklasse:
TestException
-
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
-
CannotExecuteException
-
Diese Exception wird geworfen, wenn der Start eines Prozesses durch einen Java-SUT-Client starten Knoten fehlschlägt.
Basisklasse:
TestException
-
InvalidDirectoryException
-
Diese Exception wird geworfen, wenn das Verzeichnis Attribut eines Java-SUT-Client starten Knotens auf ein nicht existierendes Verzeichnis verweist.
Basisklasse:
TestException
-
CheckFailedException
-
Diese Exception wird geworfen, wenn ein Check fehlschlägt, dessen Im Fehlerfall Exception werfen Attribut gesetzt ist.
Basisklasse:
TestException
-
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
-
OperationNotSupportedException
-
Diese Exception wird geworfen, wenn eine Operation wie Text auslesen für die angegebene Zielkomponente nicht möglich ist.
Basisklasse:
TestException
-
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
-
IndexFormatException
-
Diese Exception wird geworfen, wenn der Index eines Unterelements in einem ungültigen Format angegeben ist (vgl. Abschnitt 5.9.1).
Basisklasse:
TestException
-
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
-
IndexNotFoundException
-
Diese Exception wird geworfen, wenn kein Unterelement für einen angegebenen Index gefunden wurde.
Basisklasse:
ComponentNotFoundException
-
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
-
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
-
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
-
CannotAttachException
-
Diese Exception wird geworfen, die Verbindung zu der Windows-Anwendung fehlschlug.
Basisklasse:
TestException
-
ConnectionFailureException
-
Diese Exception wird geworfen, wenn die Verbindung zu einem Client fehlerhaft ist.
Basisklasse:
TestException
-
NoSuchClientException
-
Diese Exception wird geworfen, wenn der angegebene SUT Client für eine Operation nicht existiert.
Basisklasse:
TestException
-
NoSuchEngineException
-
Diese Exception wird geworfen, wenn eine Engine referenziert wird, die nicht existiert oder wenn versucht wird, auf eine Engine zurückzugreifen, die (noch) nicht mit QF-Test verbunden wurde Dies kann passieren, wenn die entsprechende Technologie in der Anwendung nicht oder erst zu einem späteren Zeitpunkt verwendet wird.
Basisklasse:
TestException
-
DuplicateClientException
-
Diese Exception wird geworfen, wenn versucht wird, mehr als einen Prozess gleichzeitig unter dem selben Namen zu starten.
Basisklasse:
TestException
-
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
-
ExtensionException
-
Diese Exception wird geworfen, wenn in einem Client eine unerwartete Exception auftritt.
Basisklasse:
TestException
-
ClientNotTerminatedException
-
Diese Exception wird geworfen, wenn bei der Ausführung eines Warten auf Programmende Knotens der Prozess nicht terminiert.
Basisklasse:
TestException
-
UnexpectedExitCodeException
-
Diese Exception wird geworfen, wenn der Exitcode eines Prozesses nicht den Vorgaben des Attributs Erwarteter Exitcode eines Warten auf Programmende Knotens entspricht.
Basisklasse:
TestException
-
BadExitCodeException
-
Diese Exception wird geworfen, wenn das Attribut Erwarteter Exitcode eines Warten auf Programmende Knotens nicht der Spezifikation entspricht.
Basisklasse:
TestException
-
ComponentIdMismatchException
-
Diese Exception wird geworfen, wenn das QF-Test ID der Komponente Attribut eines Knotens auf einen Knoten verweist, der nicht vom Typ Fenster, Komponente oder Element ist.
Basisklasse:
TestException
-
UnresolvedComponentIdException
-
Diese Exception wird geworfen, wenn das Ziel eines QF-Test ID der Komponente Attributs nicht existiert.
Basisklasse:
TestException
-
TestNotFoundException
-
Diese Exception wird geworfen, wenn der Testfall oder das Testfallsatz für einen Testaufruf nicht existiert.
Basisklasse:
TestException
-
DependencyNotFoundException
-
Diese Exception wird geworfen, wenn die Abhängigkeit für einen Bezug auf Abhängigkeit nicht existiert.
Basisklasse:
TestException
-
InconsistentDependenciesException
-
Diese Exception wird geworfen, wenn die Abhängigkeit aufgrund inkonsistenter Bezüge nicht linearisiert werden können.
Basisklasse:
TestException
-
RecursiveDependencyReferenceException
-
Diese Exception wird geworfen, wenn die Abhängigkeit aufgrund rekursiver Bezüge nicht linearisiert werden können.
Basisklasse:
TestException
-
ProcedureNotFoundException
-
Diese Exception wird geworfen, wenn die Prozedur für einen Prozeduraufruf nicht existiert.
Basisklasse:
TestException
-
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
-
ValueCastException
-
Diese Exception wird geworfen, wenn im Variable setzen oder Return Knoten der Wert nicht in den gewünschten Objekttyp konvertiert werden kann.
Basisklasse:
TestException
-
UserException
-
Diese Exception wird explizit durch einen Throw Knoten geworfen.
Basisklasse:
TestException
-
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
-
ScriptException
-
Diese Exception wird geworfen, wenn ein Script einen Fehler liefert.
Basisklasse:
TestException
-
AndroidSdkException
-
Dies ist eine Basisklasse. Um Android-Anwendungen zu testen, benötigt QF-Test ein auf dem Computer installiertes Android SDK. Sollte es hierbei zu Problemen kommen, so wird eine Exception die von dieser Basisklasse abgeleitet ist geworfen.
Basisklasse:
TestException
-
InvalidAndroidSdkPathException
-
Eine Exceptions dieses Typs wird geworfen, wenn ein angegeber Pfad nicht auf ein gültiges SDK verweist.
Basisklasse:
AndroidSdkException
-
AndroidSdkNotFoundException
-
Eine Exceptions dieses Typs wird geworfen wenn das Android SDK nicht auf dem Computer gefunden werden konnte.
Basisklasse:
AndroidSdkException
-
InvalidAndroidAdbPathException
-
Diese Exception wird geworfen, wenn der angegebenen ADB-Klassenpfad ungültig ist.
Basisklasse:
AndroidSdkException
-
AndroidAdbNotFoundException
-
Diese Exception wird geworfen, wenn kein Android ADB auf dem Rechner gefunden wurde.
Basisklasse:
AndroidSdkException
-
InvalidAndroidEmulatorPathException
-
Diese Exception wird geworfen, wenn der angegebenen Pfad für den Android-Emulator ungültig ist.
Basisklasse:
AndroidSdkException
-
AndroidEmulatorNotFoundException
-
Diese Exception wird geworfen, wenn kein Android-Emulator auf dem Rechner gefunden wurde.
Basisklasse:
AndroidSdkException
-
AndroidVirtualDeviceException
-
Dies ist eine Basisklasse. Um Android-Anwendungen zu Testen sollte der Android-Emulator installiert sein. Dieser Emulator kann dann ein virtuelles Android-Gerät (AVD) ausführen. Wird kein solches virtuelles Android-Gerät gefunden, oder wenn das Testen des angegebenen Emulators nicht möglich ist, so wird eine Exception die von dieser Basisklasse abgeleitet ist geworfen.
Basisklasse:
TestException
-
NoAndroidVirtualDeviceException
-
Eine Exceptions dieses Typs wird geworfen wenn kein virtuelles Android-Gerät gefunden wird auf dem die Tests ausgeführt werden können.
Basisklasse:
AndroidVirtualDeviceException
-
NoSupportedAndroidVirtualDeviceException
-
Eine Exceptions dieses Typs wird geworfen wenn kein von QF-Test unterstütztes virtuelles Android-Gerät gefunden wird auf dem die Tests ausgeführt werden können.
Basisklasse:
AndroidVirtualDeviceException
-
AndroidVirtualDeviceNotFoundException
-
Eine Exceptions dieses Typs wird geworfen wenn das angegebene virtuelle Android-Gerät nicht gefunden werden konnte.
Basisklasse:
AndroidVirtualDeviceException
-
AndroidVirtualDeviceNotSupportedException
-
Eine Exceptions dieses Typs wird geworfen wenn das angegebene virtuelle Android-Gerät nicht unterstützt wird.
Basisklasse:
AndroidVirtualDeviceException
-
AndroidVirtualDeviceParsingException
-
Eine Exceptions dieses Typs wird geworfen wenn es für QF-Test nicht möglich ist die Zeichenkette zu parsen die den zu testenden Emulator spezifiziert.
Basisklasse:
AndroidVirtualDeviceException
-
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 außerhalb einer Schleife geworfen, löst eineBreakException
einen Fehler aus.Basisklasse:
TestException
-
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 außerhalb einer Prozedur geworfen, löst eineReturnException
einen Fehler aus.Basisklasse:
TestException
-
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.