Função catch

A função catch faz parte do bloco try-catch e serve para capturar exceções que podem ser lançadas no bloco try. Quando uma exceção ocorre, a execução do código vai para o bloco catch correspondente, onde o erro pode ser tratado.

Sintaxe

phptry {
  // Código que pode lançar uma exceção
} catch (ExceptionType $e) {
  // Tratamento da exceção
}

Exemplo

Um exemplo simples de tratamento de exceção:

php<?php
  try {
    throw new Exception('Something went wrong');
  } catch (Exception $e) {
    echo 'Exceção capturada: ' . $e->getMessage();
  }
?>

Resultado da execução do código:

php'Exceção capturada: Something went wrong'

Exemplo

Tratamento de diferentes tipos de exceções:

php<?php
  try {
    if (rand(0, 1)) {
      throw new InvalidArgumentException('Invalid argument');
    } else {
      throw new RuntimeException('Runtime error');
    }
  } catch (InvalidArgumentException $e) {
    echo 'Argumento inválido: ' . $e->getMessage();
  } catch (RuntimeException $e) {
    echo 'Erro de execução: ' . $e->getMessage();
  } catch (Exception $e) {
    echo 'Exceção genérica: ' . $e->getMessage();
  }
?>

Possíveis resultados da execução do código:

php'Argumento inválido: Invalid argument'
ou
'Erro de execução: Runtime error'

Veja também

  • a construção try,
    que define um bloco de código para tratamento de exceções
  • a construção throw,
    que lança uma exceção
  • a classe Exception,
    que é a classe base para todas as exceções