Global Error Handling im Flash Player 10.1

Flash Player 10.1, der heute in der zweiten Betaversion erschienen ist, führt das Global Error Handling ein. Es besteht die Möglichkeit, alle möglicherweise auftretenden Fehler-Events, die nicht behandelt werden, mit einer einzigen Routine abzufangen. Dies bringt den Vorteil, dass problemlos alle Fehler erfasst und protokolliert werden können. Da dies auch mit dem Release Flash Player funktionieren soll, können auch Fehler beim Nutzer im laufenden Betrieb erkannt werden.

UncaughtErrorEvent

Neu ist das UncaughtErrorEvent. Durch Registrierung eines Eventhandlers für das Event UncaughtErrorEvent.UNCAUGHT_ERROR können alle nicht abgefangenen Events verarbeitet werden. Das UncaughtErrorEvent wird entweder mit einem Loaderinfo oder einem Loader verknüpft.

LoaderInfo.uncaughtErrorEvents: to detect uncaught errors in code defined in the same SWF.
Loader.uncaughtErrorEvents: to detect uncaught errors in code defined in the SWF loaded by a Loader object.

Popups beim Debug Player unterdrücken

Wenn ein Flashfile mit der Debug-Version des Flash Player ausgeführt wird, taucht bei einem Fehler das oftmals lästige Popup auf. Dieses kann nun mit der Methode preventDefault() verhindert werden.

Beispiel für Global Error Handling

Um das Beispiel zu betrachten, benötigt man den Flash Player 10.1 in der neusten Version. Es wird versucht, ein File zu laden, das nicht existiert. Der Fehler wird abgefangen und in einer Alert-Box angezeigt.

[kml_flashembed publishmethod=“dynamic“ fversion=“10.1.0″ movie=“/wp-content/uploads/2009/12/GlobalErrorHandlingDemo.swf“ width=“400″ height=“300″ targetclass=“flashmovie“]

Flash Player 10.1 benötigt!

[/kml_flashembed]

Hier der passende Quellcode dazu.

[xml]




[/xml]

Link: UncaughtErrorEvent (Flash Doku)
Link: Flash Player 10.1 Beta

[ad]

4 Gedanken zu „Global Error Handling im Flash Player 10.1“

  1. D.h. alle Fehlermeldungen, die ich nicht über das globale Event UncaughtErrorEvent.UNCAUGHT_ERROR abgefangen werden sind auch nicht sichtbar? Gibt es einen Standardlog für Fehlermeldungen, d.h. wenn ich die Fehler nicht anzeige werden diese irgendwie trotzdem geloggt?

  2. Zu erwartende Fehler behandelst du wie gewohnt und fängst sie ab, z.B.
    try {

    } catch (e:Error) {

    }
    Alle anderen Fehler werden bisher im Release Flash Player nicht weiter behandelt/erkannt, im Debug Flash Player erscheint das Popup mit dem Fehlerhinweis. Diese nicht zu erwartenden Fehler kannst du nun mit dem Global Error Handling behandeln und sie z.B. loggen (musst du selbst implementieren, werden nicht automatisch irgendwo geloggt).

  3. Ok, das war meine Frage: ob der FP selbständig einen Log anlegt. Aber gut zu wissen, dass es jetzt einfacher ist z.B. eine Logdatei zu erstellen. Vielen Dank!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert