Algumas linguagens de programação possuem o recurso de se trabalhar com exceções como PHP, ActionScript 3.0, Java, C# etc. É um recurso que se for bem usado, torna-se poderoso e ajuda a evitar futuras dores de cabeça para seu sistema. Uma exceção nada mais é que a possibilidade de tratar um erro sem necessariamente parar totalmente seu programa.
O suporte a exceções foi adicionado no PHP a partir da versão 5, e pode ser usando em conjunto com o Adobe Flex, neste caso utilizarei o Zend AMF, uma implementação do protocolo AMF para se trabalhar em conjunto com a Flash Platform e seu server-side rodando PHP fazendo parte do ZendFramework.
Considera-se uma boa prática você criar sua classe de exceção extendendo a classe Zend_Exception.
-
<?php
-
class MyException extends Zend_Exception{}
Por enquanto só isso basta, podemos implementar mais métodos de acordo com a necessidade de nosso sistema.
Agora criaremos uma classe para disparar a exceção, no PHP isso é feito usando a palavra reservada “throw”.
-
<?php
-
class HelloException
-
{
-
public function dispatchException()
-
{
-
throw new MyException("dispatch exception!!!");
-
}
-
}
-
?>
No Flex vamos chamar o método normalmente usando a classe RemoteObject.
-
protected function application1_creationCompleteHandler(event:FlexEvent):void
-
{
-
ro = new RemoteObject();
-
ro.destination = "nao faz diferença nenhuma usando com Zend AMF";
-
ro.endpoint = "http://localhost:81/ZendAmf/teste_exception.php";
-
ro.source = "br.com.leonardofranca.HelloException";
-
ro.addEventListener(ResultEvent.RESULT, handlerResult);
-
ro.addEventListener(FaultEvent.FAULT, handlerFault);
-
ro.dispatchException();
-
}
Nossa atenção se voltará para o FaultEvent, ele é responsável por capturar as exceções vindas do servidor. Basicamente só precisaremos mostrar ao usuário o faultString.
-
private function handlerFault(fault:FaultEvent):void
-
{
-
trace(fault.fault.faultCode);
-
trace(fault.fault.faultDetail);
-
trace(fault.fault.faultString);
-
Alert.show(fault.fault.faultString,"Atenção");
-
}
Devemos ter o seguinte resultado:
Código completo:
Download PHP
Download Flex






