Einige in PHP definierte integrierte Fehler

不言
Freigeben: 2023-04-03 08:46:02
Original
1278 Leute haben es durchsucht

Ab PHP7 wurde Fehler eingeführt und einige integrierte Fehler wurden definiert. Hier fassen wir einige der definierten integrierten Fehler zusammen, die als Datensatz betrachtet werden können.
ArithmeticError: Fehlerunterklasse, die ausgelöst wird, wenn bei mathematischen Operationen ein Fehler auftritt. Zu diesen Fehlern in PHP7 gehören die Durchführung negativer Verschiebungsoperationen und der Aufruf von intp(), was zu Werten außerhalb des Ganzzahlbereichs führt.
AssertionError: Fehlerunterklasse, löst eine Ausnahme aus, wenn die durch Assertion ausgegebene Assertion fehlschlägt. Nur wenn ini zend.assertions und Assert.Exception auf 1 setzt und Assertionen aktiviert sind, wird bei der Ausführung von Assertion() eine AssertionError-Ausnahme ausgelöst, die den Wert false hat.
ParseError: Fehler-Unterklasse, die eine Ausnahme auslöst, wenn beim Parsen von PHP-Code ein Fehler auftritt.
TypeError: Fehler der Unterklasse, wenn der an eine Funktion übergebene Parametertyp nicht mit dem entsprechenden deklarierten Parametertyp übereinstimmt; der von der Funktion zurückgegebene Wert stimmt nicht mit dem deklarierten Funktionsrückgabetyp überein und eine ungültige Anzahl von Parametern wird im strikten Modus übergeben Bei der Angabe der integrierten PHP-Funktion wird eine Ausnahme ausgelöst.
pisionByZeroError: ArithmeticError-Unterklasse, löst eine Ausnahme von intp() aus, wenn der Nenner 0 ist oder wenn 0 als Modulo-Operator (%) verwendet wird. Die Verwendung von 0 im Divisionsoperator (/) gibt nur eine Warnung aus und das Ergebnis ist NAN, wenn der Zähler 0 ist, und INF, wenn der Zähler ungleich Null ist.
ArgumentCountError: Seit PHP7.1 löst eine TypeError-Unterklasse eine Ausnahme aus, wenn die Anzahl der an eine benutzerdefinierte Funktion oder Methode übergebenen Parameter geringer ist als die definierte Anzahl von Parametern.

<?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")();
?>
Nach dem Login kopieren

Verwandte Empfehlungen:

Fehlerstufe in PHP, PHP-Fehlerstufe_PHP-Tutorial

Das obige ist der detaillierte Inhalt vonEinige in PHP definierte integrierte Fehler. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage