367 of 410 menu

Η Κλάση ErrorException

Η κλάση ErrorException κληρονομεί από τη βασική κλάση Exception και χρησιμοποιείται για τη μετατροπή σφαλμάτων της PHP σε εξαιρέσεις. Προσθέτει στην τυπική λειτουργικότητα των εξαιρέσεων πληροφορίες σχετικά με τη σοβαρότητα του σφάλματος (severity). Η κλάση είναι ιδιαίτερα χρήσιμη όταν χρησιμοποιείται με τη συνάρτηση set_error_handler.

Σύνταξη

new ErrorException( string $message = "", int $code = 0, int $severity = E_ERROR, string $filename = __FILE__, int $lineno = __LINE__, Throwable $previous = null );

Παράδειγμα

Δημιουργία και επεξεργασία μιας ErrorException:

<?php try { throw new ErrorException('Κρίσιμο σφάλμα', 0, E_ERROR); } catch (ErrorException $e) { echo 'Σφάλμα: ' . $e->getMessage(); echo ' Σοβαρότητα: ' . $e->getSeverity(); } ?>

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

'Σφάλμα: Κρίσιμο σφάλμα Σοβαρότητα: 1'

Παράδειγμα

Μετατροπή τυπικών σφαλμάτων της PHP σε εξαιρέσεις:

<?php function errorHandler($severity, $message, $file, $line) { throw new ErrorException($message, 0, $severity, $file, $line); } set_error_handler('errorHandler'); try { strpos(); // Λανθασμένος αριθμός ορισμάτων } catch (ErrorException $e) { echo 'Πιάστηκε εξαίρεση: ' . $e->getMessage(); echo ' στο ' . $e->getFile(); echo ' στη γραμμή ' . $e->getLine(); } ?>

Αποτέλεσμα εκτέλεσης του κώδικα (παράδειγμα):

'Πιάστηκε εξαίρεση: strpos() expects at least 2 parameters, 0 given in /path/to/file.php on line 10'

Παράδειγμα

Λήψη πληροφοριών σχετικά με τη σοβαρότητα του σφάλματος:

<?php try { throw new ErrorException('Προειδοποιητικό μήνυμα', 0, E_WARNING); } catch (ErrorException $e) { echo 'Επίπεδο σοβαρότητας: ' . $e->getSeverity(); echo ' Είναι προειδοποίηση: ' . ($e->getSeverity() === E_WARNING ? 'ναι' : 'όχι'); } ?>

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

'Επίπεδο σοβαρότητας: 2 Είναι προειδοποίηση: ναι'

Δείτε επίσης

  • την κλάση Exception,
    τη βασική κλάση για όλες τις εξαιρέσεις στην PHP
  • τη συνάρτηση set_error_handler,
    που ορίζει έναν χειριστή σφαλμάτων χρήστη
Ελληνικά
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Χρησιμοποιούμε cookie για τη λειτουργία του ιστότοπου, την ανάλυση και την εξατομίκευση. Η επεξεργασία των δεδομένων γίνεται σύμφωνα με την Πολιτική Απορρήτου.
αποδοχή όλων ρύθμιση απόρριψη