Creazione di classi di errore personalizzate

Flash Player 9 e versioni successive, Adobe AIR 1.0 e versioni successive

Potete creare le vostre classi personalizzate da utilizzare in ActionScript estendendo le classi di errore standard. Vari motivi giustificano la creazione di classi personalizzate:

  • Individuare errori o gruppi di errore specifici alla propria applicazione.

    Ad esempio, per intraprendere azioni diverse in risposta agli errori generati dal codice, oltre a quelle avviate da un runtime Flash, potete creare una sottoclasse della classe Error che tenga traccia del nuovo tipo di errore in blocchi try..catch .

  • Progettare modalità di visualizzazione uniche per gli errori generati dalla propria applicazione.

    Ad esempio, potete creare un nuovo metodo toString() che formatti i messaggi di errore in un modo particolare. Oppure, potete definire un metodo lookupErrorString() che, in base al codice di errore, recupera la versione estesa del messaggio nella lingua preferita dall'utente.

Una classe di errore speciale deve costituire un'estensione di una classe ActionScript di base. Ecco un esempio di classe AppError speciale creata a partire da una classe Error di base:

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

Il codice seguente illustra un esempio di utilizzo di AppError in un progetto:

try 
{ 
    throw new AppError("Encountered Custom AppError", 29); 
} 
catch (error:AppError) 
{ 
    trace(error.errorID + ": " + error.message) 
}
Nota: se desiderate ignorare il metodo Error.toString() nella sottoclasse, assegnate ad esso un parametro ... (rest). La specifica del linguaggio ECMAScript sul quale si basa ActionScript 3.0 definisce il metodo Error.toString in questo modo e ActionScript 3.0 lo definisce allo stesso modo per evitare problemi di compatibilità. Di conseguenza, per ignorare il metodo Error.toString() dovete utilizzare esattamente gli stessi parametri. Non passate parametri al metodo toString() in fase di runtime perché tali parametri vengono ignorati.