Aangepaste foutklassen maken

Flash Player 9 of hoger, Adobe AIR 1.0 of hoger

In ActionScript kunt u een van de standaardfoutklassen uitbreiden met uw eigen gespecialiseerde foutklassen. Er zijn verschillende redenen om uw eigen foutklassen te maken:

  • Om specifieke fouten of groepen fouten te identificeren die uniek zijn voor uw toepassing.

    U kunt bijvoorbeeld verschillende acties maken voor fouten die door uw eigen code worden gegenereerd, naast die van Flash-runtime. U kunt een subklasse van de klasse Error maken om het type foutgegevens vast te leggen in blokken van het type try..catch.

  • Om unieke weergavemogelijkheden te creëren voor fouten die uw toepassing genereert.

    U kunt bijvoorbeeld een nieuwe methode toString() maken die uw foutmelding op een bepaalde manier opmaakt. U kunt ook een methode lookupErrorString() definiëren die uitgaat van de foutcode en vervolgens de juiste melding opvraagt op basis van de taalvoorkeur van de gebruiker.

Een gespecialiseerde foutklasse moet een uitbreiding zijn op de kernklasse Error van ActionScript. Hierna volgt een voorbeeld van een gespecialiseerde klasse AppError om de klasse Error uit te breiden:

public class AppError extends Error 
{ 
    public function AppError(message:String, errorID:int) 
    { 
        super(message, errorID); 
    } 
}

In het volgende voorbeeld wordt getoond hoe u AppError kunt gebruiken in uw project:

try 
{ 
    throw new AppError("Encountered Custom AppError", 29); 
} 
catch (error:AppError) 
{ 
    trace(error.errorID + ": " + error.message) 
}
Opmerking: Als u de methode Error.toString() in uw subklassen wilt overschrijven, moet u er één parameter ... (rest) aan geven. De ECMAScript-taalspecificatie waarop ActionScript 3.0 is gebaseerd, definieert de methode Error.toString() op deze wijze, en ActionScript 3.0 definieert deze op dezelfde wijze voor achterwaartse compatibiliteit. Dus wanneer u de methode Error.toString() overschrijft, moet u de parameters precies laten overeenkomen. Het heeft geen zin om tijdens runtime parameters aan uw methode toString() door te geven, omdat deze parameters dan worden genegeerd.