Funktionen catch

Funktionen catch er en del af try-catch-blokken og tjener til at fange undtagelser, som kan blive kastet i try-blokken. Når en undtagelse opstår, overgår eksekveringen af koden til den tilsvarende catch-blok, hvor fejlen kan håndteres.

Syntaks

phptry {
  // Kode, der kan kaste en undtagelse
} catch (ExceptionType $e) {
  // Håndtering af undtagelsen
}

Eksempel

Et enkelt eksempel på håndtering af en undtagelse:

php<?php
  try {
    throw new Exception('Something went wrong');
  } catch (Exception $e) {
    echo 'Caught exception: ' . $e->getMessage();
  }
?>

Resultat af kodeeksekvering:

php'Caught exception: Something went wrong'

Eksempel

Håndtering af forskellige typer undtagelser:

php<?php
  try {
    if (rand(0, 1)) {
      throw new InvalidArgumentException('Invalid argument');
    } else {
      throw new RuntimeException('Runtime error');
    }
  } catch (InvalidArgumentException $e) {
    echo 'Invalid argument: ' . $e->getMessage();
  } catch (RuntimeException $e) {
    echo 'Runtime error: ' . $e->getMessage();
  } catch (Exception $e) {
    echo 'Generic exception: ' . $e->getMessage();
  }
?>

Mulige resultater af kodeeksekvering:

php'Invalid argument: Invalid argument'
eller
'Runtime error: Runtime error'

Se også

  • konstruktionen try,
    som definerer en kodeblok til håndtering af undtagelser
  • konstruktionen throw,
    som kaster en undtagelse
  • klassen Exception,
    som er basisklassen for alle undtagelser