367 of 410 menu

Classe ErrorException

La classe ErrorException hérite de la classe de base Exception et est utilisée pour convertir les erreurs PHP en exceptions. Elle ajoute au fonctionnalité standard des exceptions des informations sur la sévérité de l'erreur (severity). La classe est particulièrement utile lorsqu'elle est utilisée avec la fonction set_error_handler.

Syntaxe

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

Exemple

Créons et traitons une ErrorException :

<?php try { throw new ErrorException('Critical error', 0, E_ERROR); } catch (ErrorException $e) { echo 'Error: ' . $e->getMessage(); echo ' Severity: ' . $e->getSeverity(); } ?>

Résultat de l'exécution du code :

'Error: Critical error Severity: 1'

Exemple

Convertissons les erreurs standard de PHP en exceptions :

<?php function errorHandler($severity, $message, $file, $line) { throw new ErrorException($message, 0, $severity, $file, $line); } set_error_handler('errorHandler'); try { strpos(); // Nombre incorrect d'arguments } catch (ErrorException $e) { echo 'Caught exception: ' . $e->getMessage(); echo ' in ' . $e->getFile(); echo ' on line ' . $e->getLine(); } ?>

Résultat de l'exécution du code (exemple) :

'Caught exception: strpos() expects at least 2 parameters, 0 given in /path/to/file.php on line 10'

Exemple

Obtenons des informations sur la sévérité de l'erreur :

<?php try { throw new ErrorException('Warning message', 0, E_WARNING); } catch (ErrorException $e) { echo 'Severity level: ' . $e->getSeverity(); echo ' Is warning: ' . ($e->getSeverity() === E_WARNING ? 'yes' : 'no'); } ?>

Résultat de l'exécution du code :

'Severity level: 2 Is warning: yes'

Voir aussi

  • classe Exception,
    classe de base pour toutes les exceptions en PHP
  • fonction set_error_handler,
    qui définit un gestionnaire d'erreurs personnalisé
Français
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nous utilisons des cookies pour le fonctionnement du site, l'analyse et la personnalisation. Le traitement des données est effectué conformément à la Politique de confidentialité.
accepter tout personnaliser refuser