Scripts PHP

Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors

PHP Try Catch: Tutorial sobre exceções em PHP

exceções em PHP
Exceções em PHP

Com relação ao PHP try Catch, quando a versão 5 do PHP foi lançada, ela incorporou um modelo interno para capturar erros e exceções.

Tratamento de erros e exceções em PHP 5

Lidar com erros no PHP com blocos try catch é quase o mesmo que lidar com erros em outras linguagens de programação.

Quando uma exceção do PHP é lançada, o tempo de execução do PHP procura uma instrução catch que possa manipular esse tipo de exceção.

Ele continuará verificando os métodos de chamada no rastreamento de pilha até que uma instrução catch seja encontrada.

O tratamento de exceções é um mecanismo na programação que permite que um sistema trate de eventos inesperados ou erros que ocorrem durante a execução de um programa.

Gestão de Recursos: O tratamento de exceções pode garantir que recursos como conexões de banco de dados ou arquivos abertos sejam fechados corretamente, mesmo se ocorrer um erro.

Controle aprimorado: Ele permite que os desenvolvedores especifiquem como o programa deve responder a tipos específicos de erros.

O tratamento de erros normalmente lida com cenários que podem ser previstos e gerenciados, como um usuário inserindo dados inválidos.

Por outro lado, o tratamento de exceções lida com erros não previstos, como uma interrupção de rede ou uma conexão de banco de dados com falha.

Quando a versão 5 do PHP foi lançada, ela incorporou um modelo interno para capturar erros e exceções.
Lidar com exceções no PHP usando blocos try-catch se tornou uma prática padrão, espelhando o tratamento de erros em muitas outras linguagens de programação.

Quando uma exceção PHP é lançada, o sistema de tempo de execução PHP procura por uma exceção correspondente catch declaração que pode manipular esse tipo de exceção específico.

 

As palavras chaves para o tratamento de erros no PHP 5 são palavras chaves utilizadas para tratar erros de exceções do PHP, vamos ver cada uma delas:

Try: este bloco possui o código que pode ser lançado a exceção. Qualquer código aqui dentro desse bloco try é executado até que uma exceção seja lançada.

O tempo de execução do PHP irá procurar achar uma instrução catch para fazer a manipulação da exceção.

Catch: este bloco de código irá ser chamado apenas se uma exceção acontecer dentro do bloco de código try.

O código dentro dessa instrução catch deve trabalhar a exceção lançada e o código dentro do bloco finally sempre será executado após os dois blocos try e catch, de forma independente de uma exceção ter sido ou não lançada antes da execução normal continue.

Isso pode ser bastante útil se ao fecharmos uma conexão com o banco de dados, independente de uma exceção ter acontecido ou não.

O PHP tenta capturar diversos tipos de exceções e suporta a utilização de vários blocos cacth dento do try catch.

Muitas vezes, no tratamento de erros do PHP, você também pode querer utilizar uma seção finally.

A instrução Finally é usada além de apenas tratar erros de exceções, mas também para executar código de limpeza, como fechar um arquivo, fechar uma conexão de banco de dados, etc. Esse bloco sempre é executado depois que o bloco catch sai.

Isso nos garante que o bloco finally seja executado mesmo que ocorra uma exceção inesperada.

No PHP 5, o tratamento de exceções como o try-ctch teve certas mudanças importantes, conforme vimos.

Tratamento de erros e exceções em PHP 7

Com a chegada do PHP 7, diversas alterações significativas ocorreram no tratamento de erros e exceções, em especial com o contexto do try-catch-finally.

Houve a introdução do \error que unificou o tratamento de erros fatais e exceções.

Agora, os erros de exceções podem ser capturados utilizando o bloco try-catch, e isso torna o código mais limpo e consistente.

Fora isso, o PHP 7 trouxe o recurso de vários blocos de catch, permitindo capturar distintos tipos de erros e exceções em uma única base de código.

 

Um pouco antes do PHP 7, os erros fatais tais como problemas de memória ou chamadas de funções que não existiam, eram tratados de maneira distinta das outras exceções.

Assim, com a chegada do PHP 7, a introdução da classe error deu uma unificação à forma como tratar esses erros e exceções. Veja o exemplo na figura abaixo;

 

No PHP 7, se ocorrer um erro fatal como no exemplo acima de ‘divisão por zero’, pode ser capturado uma exceção, fazendo com que o tratamento de erros seja mais flexível.

Tratamento de erros e exceções em PHP 8

Já com a chegada do PHP 8, a utilização do try-catch manteve-se parecida às versões anteriores, contudo é útil fazer uma revisão de seus fundamentos. A sintaxe elementar é formada por um bloco try seguido de um ou mais blocos catch. Veja a Figura abaixo para você ter uma ideaia:

 

Na imagem do exemplo acima, o bloco try possui um código que pode gerar uma exceção em PHP, e o bloco catch irá captura e tratar essa exceção. Porém, se o try lançar uma exceção, ela deverá ser tratada pelo catch de acordo com a lógica feita.

Por outro lado o método $e ->getMessage() retornará a mensagem de erro da exceção em PHP.

Assim, o PHP 8 trouxe melhorias em desempenho e sintaxe, contudo o tratamento de exceções com o try-catch continua sem modificações.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *