Try-komento

try-rakenne mahdollistaa poikkeusten käsittelyn, joita voi ilmaantua koodin suorituksen aikana. try-lohkossa sijoitetaan potentiaalisesti vaarallinen koodi, ja catch-lohkossa - poikkeusten käsittelijä. Myös finally-lohkoa voidaan käyttää, joka suoritetaan kaikissa tapauksissa.

Syntaksi

phptry {
  // Koodi, joka voi aiheuttaa poikkeuksen
} catch (ExceptionType $e) {
  // Poikkeuksen käsittely
} finally {
  // Koodi, joka suoritetaan kaikissa tapauksissa
}

Esimerkki

Yksinkertainen esimerkki poikkeuksen käsittelystä:

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

Koodin suorituksen tulos:

php'Caught exception: Something went wrong'

Esimerkki

Esimerkki finally-lohkon käytöstä:

php<?php
try {
  echo 'Try block executed';
} finally {
  echo ' - Finally block executed';
}
?>

Koodin suorituksen tulos:

php'Try block executed - Finally block executed'

Esimerkki

Eri tyyppisten poikkeusten käsittely:

php<?php
try {
  // Koodi, joka voi aiheuttaa erilaisia poikkeuksia
  throw new InvalidArgumentException('Invalid argument');
} catch (InvalidArgumentException $e) {
  echo 'Invalid argument: ', $e->getMessage();
} catch (Exception $e) {
  echo 'Generic exception: ', $e->getMessage();
}
?>

Koodin suorituksen tulos:

php'Invalid argument: Invalid argument'

Katso myös