Como funciona o try catch no PHP

Talvez, você esteja se perguntando como funciona o try catch no PHP.

Similar às outras linguagens de programação, o PHP dispõe de sua própria estrutura para lançar e interceptar exceções.

Uma exceção pode ser lançada através de palavra reservada throw em qualquer momento do código. No entanto, para ser capturada, é necessário a estrutura try/catch de quem está invocando. Cada bloco de try, necessita ter pelo menos um catch ou finally para corresponder a tratativa de erro.

try {
    // Adicione o código aqui
}
catch (exception $e) {
    //Exceção tratada
}
finally {
    //Código que sempre irá funcionar, independente se houve exceção ou não.
}

 

Qual é a função do Try Catch?

O Try Catch serve para tornar nosso código mais gerenciável caso alguma exceção aconteça em tempo de execução.

A aplicação tentará executar o código dentro das instruções do “Try”. Caso não aconteça nenhum erro durante a execução do código, o PHP irá ignorar as instruções Catch.

Caso aconteça algum erro, o PHP tentará encontrar se há alguma instrução especifica para a exceção levantada.

Utilizando o Try Catch no PHP

Para que a estrutura funciona corretamente, é preciso ser lançado uma exceção instanciada da classe Exception, direta ou indiretamente, como no exemplo abaixo.

try {
    print "Eu estou tentando adicionar um texto";
    throw new Exception(); // Levanto uma exceção no código
} catch (Exception $e) {
    print "Algo deu errado. Mas eu estou aqui para tratar! n";
} finally {
    print "Aqui eu registro o encerramento da tentativa.";
}

Criando Exceções Personalizadas em PHP

O PHP também permite criar tipos de exceção personalizados. Isso pode ser útil para criar exceções em sua aplicação que você pode ter tratamento especial de exceção em torno.

Para criar uma exceção especializada, devemos criar uma classe especial com funções que podem ser chamadas quando ocorre uma exceção. A classe deve ser uma extensão da classe de exceção.

 

class ErroAoAdicionarItemException extends Exception {};

Seguindo o exemplo, nós podemos agora criar um tratamento específico para exceção, como no exemplo abaixo:

function AdicionarItem($quantidadeItem)
{
    try
    {
        if ($quantidadeItem== 0)
        {
            // Lanço uma exceção específica
            throw new ErroAoAdicionarItemException();
        } else {
     Realizo a ação de adicionar o item
  }
        
    }
    catch (ErroAoAdicionarItemException $ex)
    {
        echo "Quantidade de item inválida";
    }
    catch (Exception $x)
    {
        echo "Erro desconhecido.";
    }
}

 

Você quer aprender PHP e ser um desenvolver profissional com certificado?

Baixe as 48 vídeo-aulas gratuitas que te ensinarão os primeiros passos para começar a desenvolver seus próprios sistemas e hotsites.

Clique no botão abaixo para baixar as 48 vídeo aulas.

>> Sim! Eu quero ter acesso as vídeos aulas

Deixe um comentário