se vc tá usando try catch .. tá usando exceptions .. :D

vc pode personalizar algumas exceptions .. de acordo com a criticidade do
problema detectado ... exemplo:

Vamos supor que erros críticos devem disparar um email para o webmaster.

Exception_Critical {

function seila() {

mail();

}

}

automaticamente seila vai ser disparado e o email vai ser enviado ..

No try vc pode fazer aninhado ...

try {

try {} catch(Exception_Log $l)

} catch (Exception_Critical $e) {


}

ou em sequencia ...

try {

}
catch (Exception_Critical $e) {}
catch(Exception_Log $l) {}

Nesse caso, o catch executado será o que tiver o exception disparado

Em 28 de dezembro de 2011 13:54, Diogo Machado
<[email protected]>escreveu:

> Pois é, intão, eu tenho feito via Try catch, só que me falaram que eu
> teria que disparar uma exception, só que não sei tratar essas Exceptions de
> modo amigável.
>
> Em 28 de dezembro de 2011 12:27, Vitor <[email protected]> escreveu:
>
> a dúvida é como/onde exibir as mensagens amigáveis para o usuário, se é
>> deixando o exception passar, se é catching ele, e onde tratar isso
>>
>> 2011/12/28 Vitor A. (Dalai) <[email protected]>
>>
>> Também tenho essa dúvida.
>>> Não sei qual seria a melhor maneira, eu penso em algo assim:
>>>
>>> *Arquivo
>>> classes/exception/login.php*
>>> class Exception_Login extends Kohana_Exception
>>> {
>>>     const USUARIO_DESATIVADO     = 100001;
>>>     const USUARIO_NAOCONFIRMADO  = 100002;
>>>
>>>     /**
>>>      *
>>>      * @param type $debug_message mensagem pro desenvolvedor, nao em
>>> production
>>>      * @param type $code codigo tipo Exception_Login::USUARIO_DESATIVADO
>>>      * @param array $variables tipo array(':usuario'=>'
>>> [email protected]')
>>>      */
>>>     public function __construct($debug_message = null, $code = 0, array
>>> $variables = null )
>>>     {
>>>         $message_file  = strtolower(substr(__CLASS__, 0,
>>> strpos(__CLASS__,'_'))
>>>                         . DIRECTORY_SEPARATOR
>>>                         . substr(__CLASS__, strpos(__CLASS__,'_')));
>>>                         // retorna exception/login
>>>         $message_index = $code;
>>>
>>>         $message = Kohana::message($message_file, "{$message_index}");
>>>         parent::__construct($message, $variables, $code);
>>>     }
>>> }
>>>
>>> *Arquivo
>>> messages/exception/login.php*
>>> <?php defined('SYSPATH') or die('No direct script access.');
>>> return array(
>>>     Exception_Login::USUARIO_DESATIVADO     => 'O usuário :usuario está
>>> desativado',
>>>     Exception_Login::USUARIO_NAOCONFIRMADO  => 'O usuário :usuario não
>>> foi confirmado',
>>>
>>> );
>>>
>>> E daí, na hora do erro, seria
>>> throw new Exception_Login("Erro ao logar no form1 etc etc",
>>> Exception_Login::USUARIO_DESATIVADO, array(':usuario'=>$usuario_email);
>>>
>>> etc.
>>>
>>> O Kohana_Exception se responsabiliza por traduzir caso tenha a tradução
>>> da mensagem no diretório de i18n.
>>> Mas eu só pensei isso, ainda não pus em uso.
>>>
>>> O que acham?
>>>
>>> Abraços,
>>>
>>>  --
>>> Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana
>>> Php" dos Grupos do Google.
>>> Para ver esta discussão na web, acesse
>>> https://groups.google.com/d/msg/kohana-php/-/h-z3a9FvmJ4J.
>>>
>>> Para postar neste grupo, envie um e-mail para
>>> [email protected].
>>> Para cancelar a inscrição nesse grupo, envie um e-mail para
>>> [email protected].
>>> Para obter mais opções, visite esse grupo em
>>> http://groups.google.com/group/kohana-php?hl=pt-BR.
>>>
>>
>>
>>
>> --
>> Vitor de Araujo Simões (Dalai/Snag)
>> Estudante de Ciências da Computação - USP
>>
>> "Computation is the art of building solutions
>> - at the cost of creating more problems"
>>
>>
>> http://www.varaujo.com.br
>>
>>  --
>> Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana
>> Php" dos Grupos do Google.
>> Para postar neste grupo, envie um e-mail para [email protected]
>> .
>> Para cancelar a inscrição nesse grupo, envie um e-mail para
>> [email protected].
>> Para obter mais opções, visite esse grupo em
>> http://groups.google.com/group/kohana-php?hl=pt-BR.
>>
>
>
>
> --
> *Diogo Machado*
> Desenvolvimento de Aplicações Web
> www.diogomachado.com | 028 9922-0849
>
>
>
>  --
> Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana
> Php" dos Grupos do Google.
> Para postar neste grupo, envie um e-mail para [email protected].
> Para cancelar a inscrição nesse grupo, envie um e-mail para
> [email protected].
> Para obter mais opções, visite esse grupo em
> http://groups.google.com/group/kohana-php?hl=pt-BR.
>



-- 
http://felipebastosweb.com.br
http://twitter.com/felipebastosweb

-- 
Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana Php" dos 
Grupos do Google.
Para postar neste grupo, envie um e-mail para [email protected].
Para cancelar a inscrição nesse grupo, envie um e-mail para 
[email protected].
Para obter mais opções, visite esse grupo em 
http://groups.google.com/group/kohana-php?hl=pt-BR.

Responder a