Maison  >  Article  >  développement back-end  >  Quelques erreurs intégrées définies en PHP

Quelques erreurs intégrées définies en PHP

不言
不言original
2018-07-18 10:26:161258parcourir

À partir de PHP7, l'erreur a été introduite et certaines erreurs intégrées ont été définies. Nous résumons ici certaines des erreurs intégrées définies, qui peuvent être considérées comme un enregistrement.
ArithmeticError : sous-classe d'erreur, générée lorsqu'une erreur se produit lors d'opérations mathématiques. Ces erreurs dans PHP7 incluent l'exécution d'opérations de déplacement négatif et l'appel de intp() entraînant des valeurs en dehors de la plage entière.
AssertionError : sous-classe d'erreur, lève une exception lorsque l'assertion émise via assert échoue. Ce n'est que lorsque ini définit zend.assertions et assert.exception sur 1 et que les assertions sont activées qu'une exception AssertionError sera levée lorsque assert() est exécuté et est fausse.
ParseError : sous-classe d'erreur, qui lèvera une exception lorsqu'une erreur se produit lors de l'analyse du code PHP.
TypeError : sous-classe d'erreur lorsque le type de paramètre transmis à une fonction ne correspond pas à son type de paramètre déclaré correspondant ; la valeur renvoyée par la fonction ne correspond pas au type de retour de fonction déclaré et un nombre de paramètres non valide est transmis en mode strict ; Une exception sera levée lors de l'exécution de la fonction PHP intégrée.
pisionByZeroError : sous-classe ArithmeticError, lève une exception de intp() lorsque le dénominateur est 0 ou lorsque 0 est utilisé comme opérateur modulo (%). L'utilisation de 0 dans l'opérateur de division (/) émettra uniquement un avertissement et le résultat sera NAN si le numérateur est 0, et INF si le numérateur est différent de zéro.
ArgumentCountError : Depuis PHP7.1, la sous-classe TypeError lève une exception lorsque le nombre de paramètres passés à une fonction ou une méthode définie par l'utilisateur est inférieur au nombre de paramètres défini.

<?php
declare(strict_types=1);
function foo(string $arg){
	return &#39;test&#39; . $arg;;
}
function testArithmeticError(){
	try {
        $value = 1 << -1;
    } catch (ArithmeticError $e) {
        echo &#39;show ArithmeticError:&#39;;
        echo $e->getMessage();
    }
}
function testAssertionError(){
    ini_set(&#39;zend.assertions&#39;, 1);
    ini_set(&#39;assert.exception&#39;, 1);
	try {
        assert(1>2);
    } catch (AssertionError $e) {
        echo &#39;show AssertionError:&#39;;
        echo $e->getMessage();
    }
}
function testParseError(){
    try {
        eval(&#39;asset(1>2)&#39;);
    } catch (ParseError $e) {
        echo &#39;show ParseError:&#39;;
        echo $e->getMessage();
    }
}
function testTypeError(){
    try {
        foo(123);
    } catch (TypeError $e) {
        echo &#39;show TypeError:&#39;;
        echo $e->getMessage();
    } 
}
function testpisionByZeroError(){
    try{
        1%0;
    }catch(pisionByZeroError $e){
        echo &#39;show pisionByZeroError:&#39;;
        echo $e->getMessage();
    }
}
function testArgumentCountError(){
    try{
        foo();
    }catch(ArgumentCountError $e){
        echo &#39;show ArgumentCountError:&#39;;
        echo $e->getMessage();
    }
}

//foo("ArithmeticError")();
//foo("AssertionError")();
//foo("ParseError")();
//foo("TypeError")();
//foo("pisionByZeroError")();
//foo("ArgumentCountError")();
?>

Recommandations associées :

Niveau d'erreur en php, tutoriel PHP error level_PHP

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn