Gestion des erreurs PHP 7

PHP 7 change la façon dont la plupart des erreurs sont signalées. Contrairement au mécanisme traditionnel de rapport d'erreurs de PHP 5, la plupart des erreurs sont désormais générées sous forme d'exceptions Erreur.

Cette exception d'erreur peut être interceptée par un bloc try/catch comme une exception normale. S'il n'y a pas de bloc try/catch correspondant, la fonction de gestion des exceptions (enregistrée par set_exception_handler()) est appelée pour le traitement. Si un gestionnaire d'exceptions n'a pas été enregistré, il est traité de manière traditionnelle : il est signalé comme une erreur fatale.

La classe Error n'est pas étendue à partir de la classe Exception, donc un code tel que catch (Exception $e) { ... } ne peut pas intercepter Error. Vous pouvez détecter une erreur en utilisant un code tel que catch (Error $e) { ... } ou en enregistrant un gestionnaire d'exceptions (set_exception_handler()).

Hiérarchie des exceptions d'erreur

  • Erreur
    • ArithmeticError
    • AssertionError
    • DivisionByZeroError
    • ParseError
    • TypeError
  • Exception
    • ...

1458887252-2773-exception-hiearchy.jpg

Instance

<?php 
class MathOperations  
{ 
   protected $n = 10; 

   // 求余数运算,除数为 0,抛出异常 
   public function doOperation(): string 
   { 
      try { 
         $value = $this->n % 0; 
         return $value; 
      } catch (DivisionByZeroError $e) { 
         return $e->getMessage(); 
      } 
   } 
} 

$mathOperationsObj = new MathOperations(); 
print($mathOperationsObj->doOperation()); 
?>

au-dessus du le résultat de l'exécution du programme est :

Modulo by zero
Formation continue
||
<?php class MathOperations { protected $n = 10; // 求余数运算,除数为 0,抛出异常 public function doOperation(): string { try { $value = $this->n % 0; return $value; } catch (DivisionByZeroError $e) { return $e->getMessage(); } } } $mathOperationsObj = new MathOperations(); print($mathOperationsObj->doOperation()); ?>
soumettreRéinitialiser le code
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!