Noções básicas da manipulação de erros

Flash Player 9 e posterior, Adobe AIR 1.0 e posterior

O erro em tempo de execução é algo que dá errado no seu código de ActionScript e que impede a execução do conteúdo do ActionScript da forma pretendida. Para garantir que o seu código do ActionScript seja executado corretamente para os usuários, você deve escrevê-lo no aplicativo que manipula o erro (que o corrige, contorna ou pelo menos deixa o usuário saber o que aconteceu). Esse processo é chamado de manipulação de erros .

O tratamento de erros é uma ampla categoria que inclui responder a muitos tipos de erros que são lançados durante a compilação ou enquanto um aplicativo está em execução. Os erros que acontecem em tempo de compilação, em geral, são mais fáceis de identificar; é necessário corrigi-los para concluir o processo de criação de um arquivo SWF.

Os erros de tempo de execução podem ser mais difíceis de detectar, porque, para que ocorram, o código com falha deve realmente ser executado. Se um segmento do seu programa tiver várias ramificações de código, como uma instrução if..then..A instrução else testa cada condição possível, com todos os valores de entrada possíveis que os usuários reais podem usar, para confirmar que o seu código não possui erros.

Os erros de tempo de execução podem ser divididos em duas categorias: erros de programa são erros no seu código do ActionScript, como especificar o tipo de dados errado para o parâmetro de um método; erros lógicos são erros na lógica (na verificação de dados e manipulação de valores) do seu programa, tal como usar a fórmula errada para calcular taxas de juros em um aplicativo bancário. Novamente, os dois tipos de erros, em geral, podem ser detectados e corrigidos com antecedência, testando prontamente o aplicativo.

Provavelmente, você desejará identificar e remover todos os erros do aplicativo antes de lançá-lo para os usuários finais. Entretanto, nem todos os erros podem ser previstos ou evitados. Por exemplo, suponha que o aplicativo do ActionScript carregue informações de um site específico que esteja fora do seu controle. Se, em algum momento, esse site não estiver disponível, a parte do seu aplicativo que depende desses dados externos não se comportará corretamente. O aspecto mais importante do tratamento de erros diz respeito à preparação para os casos desconhecidos ao tratamento desses erros de maneira elegante. Os usuários precisam continuar usando seu aplicativo, ou pelo menos ver uma mensagem de erro intuitiva explicando o motivo do defeito.

Os erros de tempo de execução são representados de duas formas no ActionScript:

  • Classes de erro: muitos erros possuem uma classe de erro associada. Quando ocorre um erro, o tempo de execução do Flash (como o Flash Player ou o Adobe AIR) cria uma ocorrência da classe de erro específica associada a esse erro em particular. O seu código pode usar as informações contidas nesse objeto de erro para dar uma resposta apropriada ao erro.

  • Eventos de erro: às vezes ocorre um erro quando o tempo de execução do Flash normalmente dispararia um evento. Nesses casos, é disparado um evento de erro. Cada evento de erro possui uma classe associada, e o tempo de execução do Flash transmite uma instância dessa classe para os métodos que são inscritos no evento de erro.

Para determinar se um método em particular pode disparar um erro ou um evento de erro, consulte a entrada do método na Referência do ActionScript® 3.0 para Adobe® Flash® Platform .

Conceitos e termos importantes

A seguinte lista de consulta contém termos importantes para a programação de rotinas de tratamento de erros:

Assíncrono
Um comando de programa, como uma chamada de método, que não fornece um resultado imediato e, em vez disso, apresenta um resultado (ou erro) na forma de um evento.

Catch
quando ocorre uma exceção (um erro de tempo de execução) e seu código obtém essa informação, ele recebe a instrução catch para detectar a exceção. Depois que uma execução é capturada, o tempo de execução do Flash para de notificar outro código do ActionScript da exceção.

Versão do deputador
Uma versão especial do tempo de execução do Flash, como a versão de depuração do Flash Player do AIR Debug Launcher (ADL), que contém código para notificar os usuários dos erros em tempo de execução. Na versão padrão do Flash Player ou do Adobe AIR (aquela que a maioria dos usuários possui), os erros que não são manipulados pelo código do ActionScript são ignorados. Nas versões de depurador (que são incluídas no Adobe Flash CS4 Professional e no Adobe Flash Builder), é exibida uma mensagem de aviso quando acontece um erro não manipulado.

Exceção
Um erro que ocorre enquanto um aplicativo está sendo executado e que o tempo de execução do Flash não pode resolver sozinho.

Relançar
Quando seu código captura uma exceção, o tempo de execução do Flash não notifica mais outros objetos da exceção. Se for importante que os outros objetos recebam a exceção, o seu código deverá gerar novamente a exceção para reiniciar o processo de notificação.

Síncrono
Um comando de programa, como uma chamada de método, que fornece um resultado imediato (ou imediatamente gera um erro), o que significa que a resposta pode ser usada dentro do mesmo bloco de código.

Lançar
O ato de notificar o tempo de execução do Flash (e consequentemente notificar outros objetos e código do ActionScript) de que um erro ocorreu é conhecido como lançar um erro.