Komanda throw

Komanda throw se koristi za eksplicitno bacanje izuzetka u PHP-u. Ona prihvata jedan parametar - objekat izuzetka, koji mora biti instanca klase, nasleđene od osnovne klase Exception. Pri pozivu ove funkcije izvršavanje trenutnog koda se odmah prekida, i PHP pokušava da pronađe odgovarajući catch blok za obradu izuzetka.

Sintaksa

phpthrow new ExceptionClass(message, code, previous);

Primer

Jednostavan primer generisanja izuzetka:

php<?php
  $age = -5;
  if ($age < 0) {
    throw new Exception('Age cannot be negative');
  }
?>

Rezultat izvršavanja koda:

phpFatal error: Uncaught Exception: Age cannot be negative

Primer

Primer sa obradom izuzetka:

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

Rezultat izvršavanja koda:

php'Error: Division by zero'

Primer

Korišćenje korisničkog izuzetka:

php<?php
  class MyCustomException extends Exception {}
  
  try {
    throw new MyCustomException('Custom error message');
  } catch (MyCustomException $e) {
    echo 'Custom error caught: ' . $e->getMessage();
  }
?>

Rezultat izvršavanja koda:

php'Custom error caught: Custom error message'

Pogledajte takođe

  • konstrukciju try,
    koja definiše blok koda za obradu izuzetaka
  • konstrukciju catch,
    koja presreće i obrađuje izuzetke
  • klasu Exception,
    koji je osnovna klasa za sve izuzetke