Elementi fondamentali della gestione degli errori

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

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.