Sie können eine der Error-Standardklassen erweitern, um in ActionScript eigene spezielle Klassen zu erstellen. Es gibt eine Reihe von Gründen, eigene Fehlerklassen zu erstellen:
-
Identifizieren spezifischer Fehler oder Fehlergruppen, die nur in Ihrer Anwendung vorkommen.
Beispielsweise können Sie für die von Ihrem Code ausgelösten Fehler – zusätzlich zu den von einer Flash-Laufzeitumgebung abgefangenen Fehlern – abweichende Aktionen ausführen. Sie können eine Unterklasse der Error-Klasse erstellen, um den neuen Fehlertyp in
try..catch
-Blöcken zu verfolgen.
-
Bereitstellen eigener Fehleranzeigefunktionen für die in Ihrer Anwendung erzeugten Fehler.
Sie können beispielsweise eine neue
toString()
-Methode erstellen, mit der Fehlermeldungen auf bestimmte Weise formatiert werden. Sie können zudem eine
lookupErrorString()
-Methode definieren, der ein Fehlercode übergeben wird und die entsprechend der Sprachauswahl des Benutzers die richtige Fehlermeldung abruft.
Spezialisierte Fehlerklassen müssen die ActionScript-Kernklasse Error erweitern. Es folgt ein Beispiel für eine spezialisierte AppError-Klasse, die die Error-Klasse erweitert:
public class AppError extends Error
{
public function AppError(message:String, errorID:int)
{
super(message, errorID);
}
}
Im Folgenden finden Sie ein Beispiel zur Verwendung von AppError in eigenen Projekten:
try
{
throw new AppError("Encountered Custom AppError", 29);
}
catch (error:AppError)
{
trace(error.errorID + ": " + error.message)
}
Hinweis:
Wenn Sie die
Error.toString()
-Methode in Ihrer Unterklasse überschreiben möchten, versehen Sie sie mit einem
...
(rest) -Parameter. In der ECMAScript-Sprachspezifikation, auf der ActionScript 3.0 basiert, wird die
Error.toString()
-Methode auf diese Weise definiert, und ActionScript 3.0 definiert sie aus Gründen der Abwärtskompatibilität genauso. Verwenden Sie daher beim Überschreiben der
Error.toString()
-Methode exakt dieselben Parameter. Es ist nicht nötig, Parameter zur Laufzeit an die
toString()
-Methode zu übergeben, da diese ignoriert werden.