Komanda throw

Komanda throw tiek izmantota izņēmuma skaidrai izmešanai PHP. Tā pieņem vienu parametru - izņēmuma objektu, kuram jābūt klases instances, kura mantota no pamatklases Exception. Izsaucot šo funkciju, pašreizējā koda izpilde nekavējoties tiek pārtraukta, un PHP mēģina atrast atbilstošo catch bloku izņēmuma apstrādei.

Sintakse

phpthrow new ExceptionClass(message, code, previous);

Piemērs

Vienkāršs izņēmuma ģenerēšanas piemērs:

php<?php
  $age = -5;
  if ($age < 0) {
    throw new Exception('Vecums nevar būt negatīvs');
  }
?>

Koda izpildes rezultāts:

phpFatal error: Uncaught Exception: Vecums nevar būt negatīvs

Piemērs

Piemērs ar izņēmuma apstrādi:

php<?php
  try {
    $res = 10 / 0;
    if (is_infinite($res)) {
      throw new Exception('Dalīšana ar nulli');
    }
  } catch (Exception $e) {
    echo 'Kļūda: ' . $e->getMessage();
  }
?>

Koda izpildes rezultāts:

php'Kļūda: Dalīšana ar nulli'

Piemērs

Pielāgota izņēmuma izmantošana:

php<?php
  class MyCustomException extends Exception {}
  
  try {
    throw new MyCustomException('Pielāgots kļūdas ziņojums');
  } catch (MyCustomException $e) {
    echo 'Pielāgota kļūda noķerta: ' . $e->getMessage();
  }
?>

Koda izpildes rezultāts:

php'Pielāgota kļūda noķerta: Pielāgots kļūdas ziņojums'

Skatiet arī

  • konstrukciju try,
    kas definē koda bloku izņēmumu apstrādei
  • konstrukciju catch,
    kas pārtver un apstrādā izņēmumus
  • klasi Exception,
    kura ir pamatklase visiem izņēmumiem