Aby w języku ActionScript utworzyć własne, wyspecjalizowane klasy błędu, można rozszerzyć jedną ze standardowych klas Error. Istnieje wiele powodów do tworzenia własnych klas błędów:
-
Aby zidentyfikować konkretne błędy lub grupy błędów unikalnych dla aplikacji.
Na przykład: programista może wykonać różne operacje dla błędów wygenerowanych przez napisany kod (a także dla błędów przechwyconych przez środowisko wykonawcze Flash). Można utworzyć podklasę klasy Error, aby śledzić nowe typ danych błędu w blokach
try..catch
.
-
Aby zapewnić unikalne możliwości wyświetlania błędów wygenerowanych przez aplikację.
Na przykład: można utworzyć nową metodę
toString()
, która sformatuje komunikaty w pewien sposób. Można także zdefiniować metodę
lookupErrorString()
, która przyjmuje kod błędu i pobiera właściwy komunikat na podstawie preferencji językowych użytkownika.
Wyspecjalizowana klasa błędu musi rozszerzać klasę Error języka ActionScript. Poniżej przedstawiony został przykład wyspecjalizowanej klasy AppError, która rozszerza klasę Error:
public class AppError extends Error
{
public function AppError(message:String, errorID:int)
{
super(message, errorID);
}
}
Poniższy kod przedstawia przykład użycia klasy AppError w projekcie:
try
{
throw new AppError("Encountered Custom AppError", 29);
}
catch (error:AppError)
{
trace(error.errorID + ": " + error.message)
}
Uwaga:
Aby zastąpić metodę
Error.toString()
w podklasie, należy dodać do niej jeden parametr
...
(rest). Specyfikacja języka ECMAScript, na której oparty jest język ActionScript 3.0, definiuje w ten sposób metodę
Error.toString()
, a język ActionScript 3.0 definiuje ją w ten sam sposób, co zapewnia kompatybilność wsteczną. Dlatego aby zastąpić metodę
Error.toString()
, należy dokładnie uzgodnić parametry. Nie należy przekazywać w czasie wykonywania żadnych parametrów do metody
toString()
, ponieważ parametry te są ignorowane.