Команда throw

Команда throw се користи за експлицитно бацање изузетка у PHP. Она прихвата један параметар - објекат изузетка, који мора бити инстанца класе, наслеђене од базне класе Exception. При позиву ове функције извршавање тренутног кода се тренутно прекида, и PHP покушава да пронађе одговарајући блок catch за руковање изузетком.

Синтакса

phpthrow new ExceptionClass(message, code, previous);

Пример

Једноставан пример генерисања изузетка:

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

Резултат извршавања кода:

phpFatal error: Uncaught Exception: Age cannot be negative

Пример

Пример са руковањем изузетком:

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

Резултат извршавања кода:

php'Error: Division by zero'

Пример

Коришћење прилагођеног изузетка:

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

Резултат извршавања кода:

php'Custom error caught: Custom error message'

Види такође

  • конструкцију try,
    која дефинише блок кода за руковање изузетцима
  • конструкцију catch,
    која пресреће и рукује изузетцима
  • класу Exception,
    која је основна класа за све изузетке