Amri throw

Amri throw inatumika kuzua isipokuwa kwa makusudi katika PHP. Inakubua parameta moja - kitu cha isipokuwa, ambacho kinapaswa kuwa mfano wa darasa, lililourithi kutoka kwa darasa la msingi Exception. Wakati wa kuitoa amri hii, utekelezaji wa msimbo wa sasa unakoma mara moja, na PHP inajaribu kupata kizuizi kinachofaa cha catch kushughulikia isipokuwa.

Sintaksia

phpthrow new ExceptionClass(message, code, previous);

Mfano

Mfano rahisi wa kuzua isipokuwa:

php<?php
  $age = -5;
  if ($age < 0) {
    throw new Exception('Umri hauwezi kuwa hasi');
  }
?>

Matokeo ya kutekeleza msimbo:

phpFatal error: Uncaught Exception: Umri hauwezi kuwa hasi

Mfano

Mfano na kushughulikia isipokuwa:

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

Matokeo ya kutekeleza msimbo:

php'Kosa: Mgawanyiko kwa sifuri'

Mfano

Matumizi ya isipokuwa maalum ya mtumiaji:

php<?php
  class MyCustomException extends Exception {}
  
  try {
    throw new MyCustomException('Ujumbe wa kosa maalum');
  } catch (MyCustomException $e) {
    echo 'Kosa maalum limepokewa: ' . $e->getMessage();
  }
?>

Matokeo ya kutekeleza msimbo:

php'Kosa maalum limepokewa: Ujumbe wa kosa maalum'

Angalia pia

  • muundo try,
    ambao unaainisha kizuizi cha msimbo kwa ajili ya kushughulikia isipokuwa
  • muundo catch,
    ambao hukamata na kushughulikia isipokuwa
  • darasa Exception,
    ambalo ni darasa la msingi kwa isipokuwa zote