Η εντολή throw

Η εντολή throw χρησιμοποιείται για τη ρητή εκτόξευση μιας εξαίρεσης στην PHP. Δέχεται μία παράμετρο - ένα αντικείμενο εξαίρεσης, το οποίο πρέπει να είναι ένα στιγμιότυπο κλάσης που κληρονομεί από τη βασική κλάση Exception. Κατά την κλήση αυτής της συνάρτησης, η εκτέλεση του τρέχοντος κώδικα διακόπτεται αμέσως, και η PHP προσπαθεί να βρει το αντίστοιχο μπλοκ catch για την επεξεργασία της εξαίρεσης.

Σύνταξη

phpthrow new ExceptionClass(message, code, previous);

Παράδειγμα

Ένα απλό παράδειγμα δημιουργίας εξαίρεσης:

php<?php
  $age = -5;
  if ($age < 0) {
    throw new Exception('Η ηλικία δεν μπορεί να είναι αρνητική');
  }
?>

Αποτέλεσμα εκτέλεσης του κώδικα:

phpFatal error: Uncaught Exception: Η ηλικία δεν μπορεί να είναι αρνητική

Παράδειγμα

Παράδειγμα με επεξεργασία εξαίρεσης:

php<?php
  try {
    $res = 10 / 0;
    if (is_infinite($res)) {
      throw new Exception('Διαίρεση με το μηδέν');
    }
  } catch (Exception $e) {
    echo 'Σφάλμα: ' . $e->getMessage();
  }
?>

Αποτέλεσμα εκτέλεσης του κώδικα:

php'Σφάλμα: Διαίρεση με το μηδέν'

Παράδειγμα

Χρήση προσαρμοσμένης εξαίρεσης:

php<?php
  class MyCustomException extends Exception {}
  
  try {
    throw new MyCustomException('Προσαρμοσμένο μήνυμα σφάλματος');
  } catch (MyCustomException $e) {
    echo 'Προσαρμοσμένο σφάλμα πιάστηκε: ' . $e->getMessage();
  }
?>

Αποτέλεσμα εκτέλεσης του κώδικα:

php'Προσαρμοσμένο σφάλμα πιάστηκε: Προσαρμοσμένο μήνυμα σφάλματος'

Δείτε επίσης

  • την κατασκευή try,
    που ορίζει ένα μπλοκ κώδικα για την επεξεργασία εξαιρέσεων
  • την κατασκευή catch,
    που πιάνει και επεξεργάζεται εξαιρέσεις
  • την κλάση Exception,
    που είναι η βασική κλάση για όλες τις εξαιρέσεις