Flash  »  Articoli  »  Flex 

Gestire le eccezioni non gestite: il Global Exception Handler

di: Nicola Strisciuglio     04 Marzo 2011

Con la release 10.1 del Flash Player, Adobe ha introdotto una funzionalità importante per gli sviluppatori di Rich Internet Applications in Flex. La novità riguarda la possibilità di gestire le eccezioni non gestite ed evitare, quindi, la visualizzazione dei fastidiosissimi popup di errore o, in casi estremi, il blocco totale dell'applicazione.

Configurare il progetto

Per utilizzare la funzionalità di catch globale delle eccezioni è necessario compilare le nostre applicazioni per essere eseguite con il flash player 10.1 (o AIR 2.0).

Creiamo il progetto nel Flash Builder (o in alternativa Eclipse con installato il plugin Adobe Flash Builder 4), selezionando l'SDK Flex 4.1 per la compilazione, come mostrato in figura 1:

Figura 1

screenshot

Dopo aver creato il progetto, dobbiamo forzare l'utilizzo del Flash Player 10.1, altrimenti, quando utilizzeremo la funzionalità di catch globale, l'editor segnalerà un errore in fase di compilazione e non sarà possibile lanciare la nostra applicazione. Per fare ciò, dalle preferenze del progetto selezioniamo la voce “Flex Compiler” e impostiamo la versione del player come mostrato nella figura seguente:

Figura 2

screenshot

A questo punto siamo pronti per utilizzare il Global Exception Handler!

Un primo esempio di utilizzo del Global Handler

Prima di implementare l'handler globale, creiamo una semplice applicazione che, al click di un pulsante, genera un'eccezione che non viene gestita con un blocco try/catch.

Di seguito è riportato il codice dell'applicazione:

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
			   xmlns:s="library://ns.adobe.com/flex/spark" 
			   xmlns:mx="library://ns.adobe.com/flex/mx"
			   width="250" height="200"
			   creationComplete="initApplication(event)">
	<fx:Declarations>
		<!-- Place non-visual elements (e.g., services, value objects) here -->
	</fx:Declarations>
	<fx:Script>
		<![CDATA[
			import mx.collections.ArrayCollection;
			import mx.events.FlexEvent;
			
			/**
			 * Invocato al caricamento dell'applicazione
			 * Aggiunge il listener al click del pulsante
			 */
			private function initApplication(event:FlexEvent) : void {
				buttonError.addEventListener(MouseEvent.CLICK, onClickButtonError);
			}
			
			/**
			 * Invocato quando si clicca sul pulsante buttonError
			 * Genera un'eccezione
			 */ 
			private function onClickButtonError(event:MouseEvent) : void {
				throw new Error("ECCEZIONE NON GESTITA");
			}
		]]>
	</fx:Script>
	<s:Button x="50" y="70" label="Genera un errore!" width="150" height="60" id="buttonError"/>
</s:Application>

Guide Flash

Guida ActionScript 3 di base

Apprendere, in poche lezioni, le nozioni fondamentali per gestire...

Guida FlashDevelop

Installare e usare FlashDevelop, potente ambiente di sviluppo open...

Guida Flash Builder 4

Un percorso alla scoperta delle potenzialità più importanti...

Altre guide

Newsletter @Flash

Ogni martedì, guide, articoli, FAQ, movie, audio su Macromedia Flash e Actionscript direttamente nella tua casella di posta

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Corso Google AdWords Base

25 Giugno 2012 a Milano
Disponibilità: 7 Posti

Corso Google AdWords Base

05 Giugno 2012 a Roma
Disponibilità: 7 Posti