Un errore in fase di runtime è un problema che si verifica nel codice ActionScript e che interrompe l'esecuzione del contenuto di ActionScript in modo appropriato. Per fare in modo che un'applicazione ActionScript venga eseguita senza intoppi, è necessario scrivere del codice in grado di gestire gli errori, di correggerli, di escogitare delle soluzioni alternative o perlomeno di comunicare agli utenti che si è verificato un problema. Questo processo è denominato
gestione degli errori
.
Tuttavia, la gestione degli errori riguarda un ambito di attività molto ampio che comprende errori generati durante la compilazione, ma anche errori durante l'esecuzione dell'applicazione. Gli errori generati durante la compilazione sono facili da rilevare e devono obbligatoriamente essere risolti per consentire la creazione del file SWF.
Gli errori in fase di runtime sono più difficili da rilevare perché si manifestano solo nel momento in cui si esegue il codice. Se un segmento del programma presenta diverse diramazioni di codice, ad esempio un'istruzione
if..then..else
, provate ogni possibile condizione, con tutti i possibili valori di input che possono essere utilizzati da utenti reali, per confermare che il codice non contiene errori.
Gli errori in fase di runtime possono essere suddivisi in due categorie: gli
errori di programmazione
sono errori del codice ActionScript, quello che succede se si specifica un tipo di dati errato per il parametro di un metodo; gli
errori logici
sono errori nella logica (la verifica dei dati e la manipolazione dei valori) del programma, ad esempio se si utilizza la formula sbagliata per calcolare i tassi di interesse in un'applicazione bancaria. Entrambi questi tipi di errore possono essere rilevati e corretti per tempo testando scrupolosamente l'applicazione.
Idealmente, sarebbe opportuno individuare ed eliminare tutti gli errori dell'applicazione prima di distribuirla agli utenti, però non è possibile prevedere né prevenire tutti gli errori. Ad esempio, supponete che un'applicazione ActionScript carichi dei dati da un sito Web sul quale non è possibile esercitare alcun controllo e che a un certo punto tale sito risulti inaccessibile. In questo caso, la porzione di applicazione che deve elaborare i dati esterni non potrà funzionare correttamente. L'aspetto più importante della gestione degli errori riguarda la gestione dei casi imprevisti in modo che gli utenti possano continuare a usare l'applicazione o che perlomeno vengano informati da un messaggio del motivo per cui l'applicazione non funziona correttamente.
Gli errori in fase di runtime sono rappresentati in due modi in ActionScript:
-
Classi di errore: molti errori sono associati a una classe errore. Quando si verifica un errore, il runtime Flash (ad esempio, Flash Player o Adobe AIR) crea un'istanza della specifica classe associata all'errore. Il codice elabora una risposta all'errore utilizzando le informazioni contenute nell'oggetto errore.
-
Eventi errore: a volte gli errori si verificano al posto della normale attivazione di un evento nel runtime Flash. In questi casi, viene invece attivato un evento errore. Ogni evento errore è associato a una classe e il runtime Flash passa un'istanza di tale classe ai metodi che risultano registrati all'evento errore.
Per stabilire se un particolare metodo può attivare un errore o un evento errore, vedete l'argomento che tratta i metodi nella
Guida di riferimento di Adobe ActionScript 3.0 per la piattaforma Adobe Flash
.
Concetti e termini importanti
L'elenco di riferimento seguente contiene termini importanti per la programmazione delle routine di gestione degli errori:
-
Asincrono
-
Comando di un programma, come la chiamata a un metodo, che non genera un risultato immediato ma fornisce un risultato (o un errore) sotto forma di un evento.
-
Catch
-
Quando si verifica un'eccezione (un errore in fase di runtime) e il codice la rileva, si dice che il codice
cattura
l'eccezione. Una volta catturata un'eccezione, il runtime Flash cessa di comunicare l'eccezione al resto del codice ActionScript.
-
Versione debugger
-
Una versione speciale del runtime Flash, ad esempio la versione debugger di Flash Player o AIR Debug Launcher (ADL), contenente codice per la notifica agli utenti degli errori in fase di runtime. Nella versione standard di Flash Player o Adobe AIR (quella posseduta dalla maggior parte degli utenti), gli errori che non sono gestiti dal codice ActionScript vengono ignorati. Le versioni debugger, incluse in Adobe Flash CS4 Professional e Adobe Flash Builder, generano un messaggio di avvertenza quando si verifica un errore che non sono in grado di gestire.
-
Eccezione
-
Errore che si verifica durante l'esecuzione dell'applicazione e che il runtime Flash non è in grado di risolvere da solo.
-
Riproduzione
-
Quando il codice cattura un'eccezione, il runtime Flash non esegue più la notifica di altri oggetti dell'eccezione. Se è importante che gli altri oggetti ricevano l'eccezione, il codice deve
riprodurre
l'eccezione in modo che il processo di notifica ricominci.
-
Sincrono
-
Comando di un programma, come la chiamata a un metodo, che genera un risultato immediato (o che genera immediatamente un errore) e la cui risposta può essere utilizzata nello stesso blocco di codice.
-
Generare
-
L'atto di comunicare al runtime Flash (e, di conseguenza, di comunicare ad altri oggetti e al codice ActionScript) che si è verificato un errore viene comunemente definito
generazione
di un errore.