Tworzenie niestandardowych klas błędu

Flash Player 9 i nowsze wersje, Adobe AIR 1.0 i nowsze wersje

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.