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.