Funksjonen catch

Funksjonen catch er en del av try-catch-blokken og tjener til å fange unntak som kan bli kastet i try-blokken. Når et unntak oppstår, går kodeutførelsen over til den tilsvarende catch-blokken, hvor feilen kan håndteres.

Syntaks

phptry {
  // Kode som kan kaste et unntak
} catch (ExceptionType $e) {
  // Håndtering av unntak
}

Eksempel

Et enkelt eksempel på håndtering av unntak:

php<?php
  try {
    throw new Exception('Noe gikk galt');
  } catch (Exception $e) {
    echo 'Fanget unntak: ' . $e->getMessage();
  }
?>

Resultat av kodekjøring:

php'Fanget unntak: Noe gikk galt'

Eksempel

Håndtering av forskjellige typer unntak:

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

Mulige resultater av kodekjøring:

php'Ugyldig argument: Ugyldig argument'
eller
'Runtime-feil: Runtime-feil'

Se også

  • konstruksjonen try,
    som definerer en kodeblokk for håndtering av unntak
  • konstruksjonen throw,
    som kaster et unntak
  • klassen Exception,
    som er basisklassen for alle unntak