Exceções em PHP

As exceções em PHP são usadas para capturar e gerenciar erros de forma controlada e eficiente. Ao invés de deixar o código quebrar devido a um erro, podemos lançar exceções, capturá-las e tratá-las de forma adequada. Vamos explorar como funciona o tratamento de exceções com os blocos try-catch e como podemos lançar exceções personalizadas.



Tratamento Básico com Try-Catch

O PHP usa o bloco try-catch para capturar exceções. Quando um erro ocorre no bloco try, a exceção é lançada e capturada pelo bloco catch.

try {

  $numero = 10 / 0;

} catch (Exception $e) {

  echo "Erro: " . $e->getMessage();

}

O código acima tenta dividir 10 por 0, o que geraria uma exceção. O erro será capturado pelo bloco catch e a mensagem do erro será exibida.



Lançando Exceções

É possível lançar exceções manualmente utilizando a palavra-chave throw. Isso é útil para criar exceções personalizadas, como por exemplo, quando um valor não está no formato correto ou quando uma condição de erro é atendida.

function validarIdade($idade) {

  if ($idade < 18) {

    throw new Exception("Idade inválida. A idade mínima é 18.");

  }

  echo "Idade válida!";

}

try {

  validarIdade(15);

} catch (Exception $e) {

  echo "Erro: " . $e->getMessage();

}

No exemplo acima, a função validarIdade lança uma exceção se a idade for menor que 18. Quando chamada com a idade 15, uma exceção é disparada, e o erro é capturado no bloco catch.



Exceções Personalizadas

Você pode criar suas próprias classes de exceções para representar erros específicos. Isso ajuda a organizar melhor o código e melhorar o tratamento de erros.

class MinhaExcecao extends Exception {

  public function __construct($message) {

    parent::__construct($message);

  }

}

try {

  throw new MinhaExcecao("Erro personalizado ocorreu!");

} catch (MinhaExcecao $e) {

  echo "Mensagem da exceção: " . $e->getMessage();

}

O exemplo acima cria uma exceção personalizada chamada MinhaExcecao, que estende a classe Exception padrão do PHP. Quando disparada, a exceção pode ser capturada como qualquer outra exceção, mas com uma classe personalizada.



Considerações Finais

O tratamento de exceções é essencial para lidar com erros de maneira mais controlada e profissional em PHP. Ao usar try-catch, podemos garantir que os erros sejam tratados de forma adequada, sem interromper o fluxo do programa. Além disso, a criação de exceções personalizadas torna o código mais legível e organizado.