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.