0

Exceptions no PHP5

criado por André Mendonça em 15/08/2005 11:37pm
Exceptions são utilizadas para controlar o fluxo do código de maneira simples. Apesar do nome exceção, não significa que seja um controle de erro absurdo ou fatal e muito menos que o usuário do sistema saiba que ocorreu. Exception não é apenas um controle de erro, isso é apenas uma das funcionalidades. O principal é o controle de fluxo, inclusive, com código muito limpo e orientado.

Vamos compreender o assunto olhando uma maneira antiga:

<?php
/**
 * Retorna o usuario para login
 * @param string $user login do usuario
 * @param string $password senha do usuario
 * @return User
 */

function login($user, $password)
{
   
// login valido
   
if ($user == 'usuario') {
       
// senha valida
       
if ($password == 'senha') {
           
return new User($user);
       
} else {
           
// senha invalida
           
return -2;
       
}
   
} else {
       
// login invalido
       
return -1;
   
}
}

// usando a funcao acima
$user
= login('eu', 'senha');

// tratando o erro
if (!is_object($user)) {
   
switch ($user) {
       
case -1:
           
print 'usuario invalido';
           
break;
           
       
case -2:
           
print 'senha invalida';
           
break;
   
}
} else {
   
// faz alguma coisa
}
?>

Esse tipo de tratamento é bem comum na programação sem exceptions em casos que é necessário retornar vários tipos de erros.

Comentários:

Mostrando 1 - 2 de 2 comentários
Click disse:
Bem explicado, recomendo apenas colocar códigos já testados.
Por exemplo, o exemplo da página 5 retornou:
Fatal error: Call to undefined function NotExists() in exception.php on line 33

Ah sim, na linha 33: throw NotExists($path);

[]s


05/03/2006 5:46pm (~19 anos atrás)

parabéns pelo artigo!!
muito bom e bem explicado...
issu vai ser muito útil para o meu sistema de log de erro
:p

;)

17/08/2005 7:19am (~20 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)