Funkcija catch

Funkcija catch ir daļa no try-catch bloka un kalpo izņēmumu pārtveršanai, kas var tikt izmesti try blokā. Izņēmuma gadījumā koda izpilde pāriet atbilstošajā catch blokā, kur kļūda var tikt apstrādāta.

Sintakse

phptry {
  // Kods, kas var izmest izņēmumu
} catch (ExceptionType $e) {
  // Izņēmuma apstrāde
}

Piemērs

Vienkāršākais izņēmuma apstrādes piemērs:

php<?php
  try {
    throw new Exception('Kaut kas nogāja greizi');
  } catch (Exception $e) {
    echo 'Noķerts izņēmums: ' . $e->getMessage();
  }
?>

Koda izpildes rezultāts:

php'Noķerts izņēmums: Kaut kas nogāja greizi'

Piemērs

Dažādu izņēmumu tipu apstrāde:

php<?php
  try {
    if (rand(0, 1)) {
      throw new InvalidArgumentException('Nederīgs arguments');
    } else {
      throw new RuntimeException('Izpildes kļūda');
    }
  } catch (InvalidArgumentException $e) {
    echo 'Nederīgs arguments: ' . $e->getMessage();
  } catch (RuntimeException $e) {
    echo 'Izpildes kļūda: ' . $e->getMessage();
  } catch (Exception $e) {
    echo 'Vispārējs izņēmums: ' . $e->getMessage();
  }
?>

Iespējamie koda izpildes rezultāti:

php'Nederīgs arguments: Nederīgs arguments'
vai
'Izpildes kļūda: Izpildes kļūda'

Skatiet arī

  • konstrukciju try,
    kas definē koda bloku izņēmumu apstrādei
  • konstrukciju throw,
    kas izmet izņēmumu
  • klasi Exception,
    kurs ir pamatklase visiem izņēmumiem