Comando throw

O comando throw é usado para lançar explicitamente uma exceção em PHP. Ele aceita um parâmetro - um objeto de exceção, que deve ser uma instância de uma classe, herdada da classe base Exception. Quando esta função é chamada, a execução do código atual é imediatamente interrompida, e o PHP tenta encontrar o bloco catch correspondente para lidar com a exceção.

Sintaxe

phpthrow new ExceptionClass(message, code, previous);

Exemplo

Um exemplo simples de geração de exceção:

php<?php
  $age = -5;
  if ($age < 0) {
    throw new Exception('A idade não pode ser negativa');
  }
?>

Resultado da execução do código:

phpFatal error: Uncaught Exception: A idade não pode ser negativa

Exemplo

Exemplo com tratamento de exceção:

php<?php
  try {
    $res = 10 / 0;
    if (is_infinite($res)) {
      throw new Exception('Divisão por zero');
    }
  } catch (Exception $e) {
    echo 'Erro: ' . $e->getMessage();
  }
?>

Resultado da execução do código:

php'Erro: Divisão por zero'

Exemplo

Usando uma exceção personalizada:

php<?php
  class MyCustomException extends Exception {}
  
  try {
    throw new MyCustomException('Mensagem de erro personalizada');
  } catch (MyCustomException $e) {
    echo 'Erro personalizado capturado: ' . $e->getMessage();
  }
?>

Resultado da execução do código:

php'Erro personalizado capturado: Mensagem de erro personalizada'

Veja também

  • a construção try,
    que define um bloco de código para tratamento de exceções
  • a construção catch,
    que captura e trata exceções
  • a classe Exception,
    que é a classe base para todas as exceções