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 (~10 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 (~11 anos atrás)

Novo Comentário:

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