Funkcija catch

Funkcija catch je deo try-catch bloka i služi za hvatanje izuzetaka koji mogu biti bačeni u bloku try. Kada se pojavi izuzetak, izvršenje koda prelazi u odgovarajući catch blok, gde se greška može obraditi.

Sintaksa

phptry {
  // Kod koji može da baci izuzetak
} catch (ExceptionType $e) {
  // Obrada izuzetka
}

Primer

Najjednostavniji primer obrade izuzetka:

php<?php
  try {
    throw new Exception('Something went wrong');
  } catch (Exception $e) {
    echo 'Caught exception: ' . $e->getMessage();
  }
?>

Rezultat izvršavanja koda:

php'Caught exception: Something went wrong'

Primer

Obrada različitih tipova izuzetaka:

php<?php
  try {
    if (rand(0, 1)) {
      throw new InvalidArgumentException('Invalid argument');
    } else {
      throw new RuntimeException('Runtime error');
    }
  } catch (InvalidArgumentException $e) {
    echo 'Invalid argument: ' . $e->getMessage();
  } catch (RuntimeException $e) {
    echo 'Runtime error: ' . $e->getMessage();
  } catch (Exception $e) {
    echo 'Generic exception: ' . $e->getMessage();
  }
?>

Mogući rezultati izvršavanja koda:

php'Invalid argument: Invalid argument'
ili
'Runtime error: Runtime error'

Pogledajte takođe

  • konstrukciju try,
    koja definiše blok koda za obradu izuzetaka
  • konstrukciju throw,
    koja baca izuzetak
  • klasu Exception,
    koji je osnovna klasa za sve izuzetke