W3docs

Exception()

Aprenda a usar a classe Exception do PHP para tratar erros com blocos try-catch e exceções personalizadas.

Introdução

No mundo digital atual, PHP é uma das linguagens de script mais populares usadas para desenvolvimento web. Ela oferece uma ampla variedade de recursos e funcionalidades que facilitam o desenvolvimento de sites e aplicações dinâmicas. No entanto, como em qualquer linguagem de programação, erros e exceções podem ocorrer durante a execução. Neste artigo, discutiremos como lidar com esses problemas em PHP e forneceremos informações detalhadas sobre a classe Exception.

Tratamento de Exceções em PHP

O tratamento de exceções é o processo de detectar e responder a erros que ocorrem enquanto um script é executado. Esse mecanismo permite que os desenvolvedores capturem e gerenciem condições inesperadas, tornando a depuração e a resolução de problemas muito mais fáceis. PHP fornece uma classe Exception integrada que serve como base para o tratamento dessas condições.

A classe Exception faz parte da biblioteca padrão do PHP e implementa a interface Throwable, que serve como interface base para todos os erros e exceções no PHP 7+. Exceções personalizadas estendem essa classe base, permitindo que os desenvolvedores adicionem propriedades e métodos específicos para um tratamento de erros mais direcionado.

Criando Exceções Personalizadas

Além da classe Exception integrada, PHP permite que você crie exceções personalizadas. Elas são criadas estendendo a classe Exception e adicionando propriedades ou métodos personalizados conforme necessário. Para definir uma exceção personalizada, basta criar uma nova classe que herde de Exception. Por exemplo:

Como criar uma exceção personalizada em PHP?

<?php

class CustomException extends Exception
{
    public function __construct(string $message, int $code = 0, ?Throwable $previous = null)
    {
        parent::__construct($message, $code, $previous);
    }

    public function customFunction()
    {
        // custom function logic here
    }
}

Observação: No PHP moderno, você pode simplesmente remover o método __construct se nenhuma lógica personalizada for necessária.

Usando Blocos try-catch

Em PHP, os blocos try-catch gerenciam exceções que surgem durante a execução do script. Um bloco try contém código que pode lançar uma exceção, enquanto um bloco catch a trata caso ocorra. Você também pode usar um bloco finally para executar código de limpeza independentemente de uma exceção ter sido lançada.

Usando blocos try-catch para tratar exceções em PHP

<?php

try {
  // code that may throw an exception
  throw new Exception("Something went wrong");
}
catch (Exception $e) {
  // handle the exception
  echo $e->getMessage();
}
finally {
  // cleanup code that always runs
}

No bloco catch, a exceção é capturada e pode ser tratada usando os métodos e propriedades da classe Exception. O bloco catch também pode ser usado para registrar a exceção ou realizar outras ações conforme necessário. Ao capturar vários tipos de exceção, sempre ordene os blocos catch do mais específico para o mais geral, para garantir que o manipulador correto seja executado primeiro.

Conclusão

O tratamento de exceções é uma parte essencial do desenvolvimento em PHP. A classe Exception fornece uma base sólida para gerenciar erros que ocorrem durante a execução. Ao combinar blocos try-catch com exceções personalizadas, os desenvolvedores podem criar aplicações confiáveis, mais fáceis de depurar e manter.

Diagrama:


graph LR
A[Start] --> B[Try Block]
B --> C{Exception Occurs?}
C -- Yes --> D[Catch Block]
C -- No --> E[Normal Flow]
D --> F[Finally Block]
E --> F
F --> G[End]

Prática

Prática
O que a estrutura 'try', 'catch', 'finally' em PHP permite que você faça?
O que a estrutura 'try', 'catch', 'finally' em PHP permite que você faça?
Was this page helpful?