ホームページ >バックエンド開発 >PHPチュートリアル >PHP で定義されたいくつかの組み込みエラー

PHP で定義されたいくつかの組み込みエラー

不言
不言オリジナル
2018-07-18 10:26:161289ブラウズ

PHP7 から、Error が導入され、いくつかの組み込みエラーが定義されました。ここでは、記録としてみなせる定義済みの組み込みエラーのいくつかを要約します。
ArithmeticError: エラー サブクラス。数学的演算中にエラーが発生した場合にスローされます。 PHP7 でのこれらのエラーには、負のディスプレイスメント操作の実行や intp() の呼び出しが含まれ、整数の範囲外の値が返されます。
AssertionError: エラー サブクラス。assert を通じて発行されたアサーションが失敗した場合に例外をスローします。 ini が zend.assertions とassert.Exception を 1 に設定し、アサーションが有効になっている場合にのみ、assert() が実行されて false の場合に AssertionError 例外がスローされます。
ParseError: PHP コードの解析中にエラーが発生した場合に例外をスローするエラー サブクラス。
TypeError: 関数に渡されたパラメータの型が対応する宣言されたパラメータの型と一致しない場合、関数から返される値が宣言された関数の戻り値の型と一致しない場合、および無効な数のパラメータが厳密モードで渡された場合のエラー サブクラス組み込みの PHP 関数を与えると例外がスローされます。
pisionByZeroError: ArithmeticError サブクラスは、分母が 0 の場合、または 0 がモジュロ演算子 (%) として使用される場合に、intp() から例外をスローします。除算 (/) 演算子で 0 を使用すると、警告が発行されるだけで、分子が 0 の場合は結果が NAN になり、分子がゼロ以外の場合は INF になります。
ArgumentCountError: PHP7.1 以降、ユーザー定義の関数またはメソッドに渡されたパラメーターの数が定義されたパラメーターの数より少ない場合、TypeError サブクラスは例外をスローします。

<?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")();
?>

関連する推奨事項:

php のエラー レベル、php エラー レベル_PHP チュートリアル

以上がPHP で定義されたいくつかの組み込みエラーの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。