Catch-funktio

Funktio catch on osa try-catch-lohkoa ja palvelee poikkeusten sieppaamiseen, jotka voidaan heittää try-lohkossa. Poikkeuksen ilmaantuessa koodin suoritus siirtyy vastaavaan catch-lohkoon, jossa virhe voidaan käsitellä.

Syntaksi

phptry {
  // Koodi, joka voi heittää poikkeuksen
} catch (ExceptionType $e) {
  // Poikkeuksen käsittely
}

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

Eri tyyppisten poikkeusten käsittely:

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();
  }
?>

Mahdolliset koodin suorituksen tulokset:

php'Invalid argument: Invalid argument'
tai
'Runtime error: Runtime error'

Katso myös

  • rakenteen try,
    joka määrittelee koodilohkon poikkeusten käsittelyä varten
  • rakenteen throw,
    joka heittää poikkeuksen
  • luokan Exception,
    joka on perusluokka kaikille poikkeuksille