Komento throw

Komento throw käytetään poikkeusten nimeenomaiseen heittämiseen PHP:ssä. Se ottaa yhden parametrin - poikkeusolion, jonka on oltava peritty Exception-perusluokasta. Kun tätä komentoa kutsutaan, nykyisen koodin suoritus keskeytyy välittömästi, ja PHP yrittää löytää vastaavan catch-lohkon poikkeuksen käsittelemiseksi.

Syntaksi

phpthrow new ExceptionClass(message, code, previous);

Esimerkki

Yksinkertainen esimerkki poikkeuksen heittämisestä:

php<?php
  $age = -5;
  if ($age < 0) {
    throw new Exception('Ikä ei voi olla negatiivinen');
  }
?>

Koodin suorituksen tulos:

phpFatal error: Uncaught Exception: Ikä ei voi olla negatiivinen

Esimerkki

Esimerkki poikkeuksen käsittelystä:

php<?php
  try {
    $res = 10 / 0;
    if (is_infinite($res)) {
      throw new Exception('Jako nollalla');
    }
  } catch (Exception $e) {
    echo 'Virhe: ' . $e->getMessage();
  }
?>

Koodin suorituksen tulos:

php'Virhe: Jako nollalla'

Esimerkki

Mukautetun poikkeuksen käyttö:

php<?php
  class MyCustomException extends Exception {}
  
  try {
    throw new MyCustomException('Mukautettu virheviesti');
  } catch (MyCustomException $e) {
    echo 'Mukautettu virhe saatu kiinni: ' . $e->getMessage();
  }
?>

Koodin suorituksen tulos:

php'Mukautettu virhe saatu kiinni: Mukautettu virheviesti'

Katso myös

  • rakenteen try,
    joka määrittelee koodilohkon poikkeusten käsittelyä varten
  • rakenteen catch,
    joka sieppaa ja käsittelee poikkeukset
  • luokan Exception,
    joka on kaikkien poikkeusten perusluokka