Know-how für Kreative

Inhaltsverzeichnis
1 Erste Schritte
2 Versionen
3 Einführung in die Programmierung
4 Die Entwicklungsumgebung
5 Regeln
6 Anweisungen und Aktionen
7 Werte und Datentypen
8 Ausdrücke und Operatoren
9 Funktionen
10 Kontrollstrukturen
11 Dokumenten-Objektmodell und Gültigkeitsbereich (Scope)
12 Ereignisse
13 Objekterstellung
14 Vererbung
15 Movieclips
16 ActionScript 2.0
17 Komponenten
18 Codedesign und Konzeption
19 Flashdetection
20 Aussergewoehnliche Benutzerfuehrung
21 D mit Flash
22 Macromedia Central
23 HTML
24 JavaScript, ActiveX und Java
25 Flash undokumentiert
26 Vergangenheit, Gegenwart und Zukunft
27 Kurzreferenz
28 Buchtipps
29 Links
30 Die CD-ROM zum Buch
Index
Download: - ZIP, ca. 9,8 MB
Buch bestellen
Ihre Meinung?
<< zurück | Galileo Design / <openbook> / ActionScript | vor >>
ActionScript 1 und 2 von Sascha Wolter (http://www.saschawolter.de/) Objektorientierung und Codedesign mit Flash MX 2004
ActionScript 1 und 2 672 S., mit CD, Referenzkarte, 44,90 Euro Galileo Design ISBN 3-89842-221-6 |
| Kapitel 10 Kontrollstrukturen
|  | 10.1 Bedingte Anweisungen
|  |  | 10.1.1 if
|  |  | 10.1.2 else
|  |  | 10.1.3 else if (mehr als eine Alternative)
|  |  | 10.1.4 switch und break
|  | 10.2 Schleifen
|  |  | 10.2.1 Endlosschleifen
|  |  | 10.2.2 while
|  |  | 10.2.3 do while
|  |  | 10.2.4 for
|  |  | 10.2.5 for in
|  |  | 10.2.6 break
|  |  | 10.2.7 continue
|  | 10.3 Ausnahmebehandlung
|  |  | 10.3.1 try-catch-finally
|  |  | 10.3.2 throw
## 10.3 Ausnahmebehandlung Die Ausnahmebehandlung in Flash gibt es leider erst seit Flash MX 2004. Dennoch ist Ausnahmebehandlung mit try-catch-Klauseln ein mächtiges Werkzeug für die Fehlerbehandlung zur Laufzeit, das bei größeren Projekten für den Flash Player 7 unbedingt eingesetzt werden sollte. Möglicherweise sind Sie in einer Großküche beschäftigt und für die Zubereitung von Pfannkuchen zuständig. Normalerweise klappt dies immer, doch ab und an kann etwas schief gehen, was Sie dem Chefkoch möglichst mitteilen sollten:
    function machePfannkuchen() {
       if (keineZutaten) {
          throw ("Zutaten für Pfannkuchen fehlen ...");
       }
    }
Und wenn es ein weitsichtiger Chefkoch ist, dann kann der darauf reagieren, ganz egal wann und von wo aus er den Pfannkuchen in Auftrag gegeben hat, denn Sie geben die ausnahmsweise auftretenden Probleme ja an die nächst höhere Instanz weiter:
    try {
       machePfannkuchen();
    } catch (e) {
       trace("Schließe Restaurante, denn "+e);
    }
### 10.3.1 try-catch-finally Der try-Block enthält die Anweisungen, die ausgeführt werden sollen und dabei eventuell zu einem Fehler führen könnten. Jedem try-Block muss dann mindestens noch ein weiterer Block folgen. Dabei steht der finally-Block für den Programmcode, der unabhängig von einem Fehler ausgeführt wird. Häufig wird dies für Aufräumaktionen eingesetzt, um z.B. Objekte oder Listener wieder zu entfernen: try { trace("tu was"); } finally { trace("tu immer"); } catch-Blöcke sind für die Fehlerbehandlung angedacht und erhalten den Fehler als Parameter:
    try {
       trace("tu was");
    } catch (error) {
       trace(error);
    }
Jeder try-Block darf dabei mehrere catch-Blöcke besitzen, die abhängig vom Fehler abgearbeitet werden. Typisierung erlaubt es dabei, die Fehlerarten zu unterscheiden:
    try {
       trace("tu was");
    } catch (error:ErrorA) {
       trace(error);
    } catch (error:ErrorB) {
       trace(error);
    }
Sollte übrigens kein catch-Block verfügbar sein, dann wird der Fehler im Ausgabefenster gezeigt. ##### Fehlertyp Normalerweise werden Sie eigene Klassen für die verschiedenen Fehlerarten anlegen, um Fehler unterscheiden und darauf reagieren zu können. Eine fehlerhafte Benutzereingabe sollte beispielsweise zu einer anderen Meldung führen als eine fehlgeschlagene Internetkommunikation. Sollte es Ihnen ausreichen, nur Fehlerbezeichnungen und Fehlercodes zu unterscheiden, dann würde das so wie der folgende Code aussehen: try { throw "Fehler"; // throw 99; } catch (error:String) { trace("Fehlerbezeichnung"); } catch (error:Number) { trace("Fehlercode"); } ### 10.3.2 throw Da Flash leider keine Fehler zur Laufzeit erkennt, müssen wir als Entwickler selber dafür Sorge tragen. Dies geschieht mit Hilfe der throw-Anweisung. Diese erlaubt es, einen beliebigen Ausdruck als Fehler zu melden, der dann von dem nächsten verfügbaren catch-Block abgearbeitet wird:
    try {
       throw "Fehler";
    } catch (error) {
       trace(error);
    }
Dabei können throw-Anweisungen völlig losgelöst von try-Blöcken verwendet werden. Sobald ein throw im Programmcode auftaucht, wird der Programmablauf unterbrochen und durch alle Funktionsaufrufe hindurch nach dem ersten passenden catch-Block gesucht. Jeder dabei gefundene finally-Block wird ebenfalls komplett abgearbeitet. Die folgende Funktion erkennt fehlerhafte Angaben und erzeugt eine Ausnahmebehandlung:
    // Ermittle das Alter in Tagen
    function getAgeInDays(date:Date):Number {
       var minDate = new Date(1900);
       var today = new Date();
       if (date<minDate || date>today) {
          throw "Ungültiger Geburtstag";
       }
       // getTime() ermittelt das Alter in Millisekunden
       return (today-date)/(1000*60*60*24);
    }
Der folgende try-Block ruft diese Funktion nun auf. Da innerhalb der Funktion kein catch-Block bereitsteht, kommt der folgende catch-Block zum Einsatz, sobald ein Fehler von der Funktion erzeugt wird:
    try {
       trace(getAgeInDays(new Date(1973, 0, 13)));
    } catch (error) {
       trace(error);
    }
<< zurück | <top> | vor >>
Zum Katalog
ActionScript 1 und 2 bestellen
Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen? Ihre Meinung
Buchtipps
| Einstieg in ActionScript
| Einstieg in Flash 8
| Flash 8 und PHP
| Flash 8-Tutorials
| Dreamweaver 8
| Webseiten programmieren und gestalten
Shopping
Versandkostenfrei bestellen in Deutschland und Österreich Info

Copyright © Galileo Press GmbH 2005
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

[Galileo Design]
Galileo Press GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de