Grundlagen der Fehlerverarbeitung

Flash Player 9 und höher, Adobe AIR 1.0 und höher

Bei einem Laufzeitfehler tritt im ActionScript-Code ein Problem auf, in dessen Folge der ActionScript-Inhalt nicht mehr ausgeführt werden kann. Um die problemlose Ausführung des ActionScript-Codes für Benutzer sicherzustellen, fügen Sie in die Anwendung Code ein, der solche Fehler verarbeitet (korrigiert, vermeidet oder zumindest dem Benutzer die genaue Ursache meldet). Dieser Vorgang wird als Fehlerverarbeitung bezeichnet.

Fehlerverarbeitung ist ein sehr breites Gebiet, das viele Fehlerarten abdecken muss, die während des Kompilierens oder beim Ausführen einer Anwendung auftreten. Fehler, die zur Kompilierzeit auftreten, sind oft einfacher zu finden. Korrigieren Sie diese Fehler, damit die SWF-Datei erstellt werden kann.

Laufzeitfehler sind schwieriger zu erkennen, da der fehlerhafte Code ausgeführt werden muss, damit sie auftreten. Wenn ein Bereich des Programms mehrere Codezweige enthält, z. B. in einer if..then..else -Anweisung, testen Sie jede mögliche Bedingung mit allen real möglichen Eingabewerten, um zu bestätigen, dass der Code fehlerfrei ist.

Laufzeitfehler lassen sich in zwei Kategorien einteilen: Programmfehler : Fehler im ActionScript-Code, z. B. durch Angeben eines falschen Datentyps für einen Methodenparameter; logische Fehler : Fehler in der Logik (Datenüberprüfung und Werteverarbeitung) des Programms, z. B. durch Verwenden einer fehlerhaften Formel zum Berechnen von Zinswerten in einer Bankanwendung. Beide Fehlertypen können häufig durch konsequentes Testen der Anwendung rechtzeitig erkannt und korrigiert werden.

Das Idealziel besteht darin, alle Fehler in der Anwendung zu erkennen und zu entfernen, bevor diese für Endbenutzer veröffentlicht wird. Es können jedoch nicht alle Fehler vorhergesehen oder vermieden werden. Angenommen, Ihre ActionScript-Anwendung lädt Informationen von einer bestimmten Website, die Sie nicht testen können. Wenn diese Website einmal nicht verfügbar ist, funktioniert der Teil Ihrer Anwendung nicht ordnungsgemäß, der von den externen Daten abhängt. Der wichtigste Aspekt der Fehlerverarbeitung ist, die Anwendung auf solche unbekannten Situationen vorzubereiten, damit sie angemessen darauf reagieren kann. Die Benutzer müssen in der Lage sein, weiterhin mit der Anwendung zu arbeiten. Zumindest sollten sie jedoch in einer Fehlermeldung informiert werden, warum die Anwendung nicht mehr funktioniert.

Laufzeitfehler werden in ActionScript auf zwei Arten repräsentiert:

  • Error-Klassen: Vielen Fehlern ist eine entsprechende Fehlerklasse zugeordnet. Beim Auftreten eines Fehlers erzeugt die Flash-Laufzeitumgebung (wie Flash Player oder Adobe AIR) eine Instanz der spezifischen Fehlerklasse, die diesem bestimmten Fehler zugeordnet ist. Im Programmcode können die in diesem Fehlerobjekt enthaltenen Informationen ausgewertet werden, um angemessen auf den Fehler reagieren zu können.

  • Fehlerereignisse: Manchmal tritt ein Fehler auf, wenn die Flash-Laufzeitumgebung normalerweise ein Ereignis auslösen würden. In diesen Fällen wird stattdessen ein Fehlerereignis ausgelöst. Jedem Fehlerereignis ist eine Klasse zugeordnet. Die Flash-Laufzeitumgebung übergibt eine Instanz dieser Klasse an die Methoden, die für das Fehlerereignis registriert sind.

Um festzustellen, ob eine bestimmte Methode einen Fehler oder ein Fehlerereignis auslösen kann, lesen Sie den Eintrag zu der betreffenden Methode im ActionScript 3.0-Referenzhandbuch für die Adobe Flash-Plattform .

Wichtige Konzepte und Begriffe

Die folgende Referenzliste enthält wichtige Begriffe für die Programmierung von Routinen für die Fehlerverarbeitung:

Asynchron
Ein Programmbefehl wie beispielsweise ein Methodenaufruf, der kein sofortiges Ergebnis zurückgibt. Stattdessen wird das Ergebnis (bzw. ein Fehler) als Ereignis zurückgegeben.

Abfangen
Wenn eine Ausnahme (ein Laufzeitfehler) auftritt und der Code diese Ausnahme erkennt, wird dies als Abfangen der Ausnahme im Code bezeichnet. Nachdem eine Ausnahme abgefangen wurde, wird anderer ActionScript-Code in der Flash-Laufzeitumgebung nicht mehr über die Ausnahme benachrichtigt

Debugger-Version
Eine spezielle Version der Flash-Laufzeit, zum Beispiel die Debugger-Version von Flash Player oder der AIR Debug Launcher (ADL), die Code zum Benachrichtigen von Benutzern über Laufzeitfehler enthält. In der Standardversion von Flash Player oder Adobe AIR (die von den meisten Benutzern verwendet wird) werden die nicht mit dem ActionScript-Code verarbeiteten Fehler ignoriert. In den Debugger-Versionen (die in Adobe Flash CS4 Professional und Adobe Flash Builder enthalten sind) wird beim Auftreten eines nicht verarbeiteten Fehlers eine Warnmeldung angezeigt.

Ausnahmebedingung
Ein Fehler, der beim Ausführen einer Anwendung auftritt und der in der Flash-Laufzeit nicht automatisch behoben werden kann.

Erneutes Auslösen
Wenn der Code eine Ausnahme abfängt, benachrichtigt die Flash-Laufzeit andere Objekte nicht mehr über die Ausnahme. Wenn es wichtig ist, dass auch andere Objekte die Ausnahme erhalten, muss die Ausnahme im Code erneut ausgelöst werden, damit der Benachrichtigungsvorgang neu gestartet wird.

Synchron
Ein Programmbefehl wie beispielsweise ein Methodenaufruf, der ein sofortiges Ergebnis zurückgibt (oder sofort einen Fehler auslöst). Das Ergebnis kann im selben Codeblock verwendet werden.

Auslösen
Das Benachrichtigen einer Flash-Laufzeit (und damit auch von anderen Objekten und ActionScript-Code) über das Auftreten eines Fehlers wird als Auslösen eines Fehlers bezeichnet.