Wyjątki

[35]

<?php
/*
  throw - zgłoś wyjątek
  chatch - łap wyjątek jaki się zdarzył w bloku try {}
*/

function Koduj(int $cyfra) : int {
  $kod=10-$cyfra;
  if ($kod <= 0) {
    throw new Exception('To nie jest cyfra! ['.$cyfra.']');
  }
  return $kod;
}

$komunikat = [9,2,1,10,9,2];

try {
  for ($i=0; $i<count($komunikat); $i++) {
    $komunikat[$i]=Koduj($komunikat[$i]);
  }
} catch (Exception $e) { 
    echo 'Nastąpił wyjątek: '.$e->getMessage();
}

Do konstrukcji try {} można dodać wiele sekcji catch (dla różnych wyjątków) oraz finally {} - dla końcowej obsługi (także w sytuacji, gdy wczęsniej obsłużono wyjątek).

<?php
/*
  throw - zgłoś wyjątek
  charch - łap wyjątek jaki się zdarzył w bloku try {}
*/

function Koduj(int $cyfra) : int {
  $kod=10-$cyfra;
  if ($kod <= 0) {
    throw new Exception('To nie jest cyfra! ['.$cyfra.']');
  }
  return $kod;
}

$komunikat = [9,2,1,10,9,2];

try {
  for ($i=0; $i<count($komunikat); $i++) {
    $komunikat[$i]=Koduj($komunikat[$i]);
  }
} catch (Exception $e) { 
    echo 'Nastąpił wyjątek: '.$e->getMessage();
}

W PHP dostępne są następujące wbudowane podklasy klasy Exception :