PHP中定义的一些内置错误
内容导读
收集整理的这篇技术教程文章主要介绍了PHP中定义的一些内置错误,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2103字,纯文字阅读大概需要4分钟。
内容图文
从PHP7开始,便引入了Error并定义了一些内置错误。在这里总结一些所定义的内置错误,也算是有个记录。ArithmeticError:Error子类,在执行数学运算发生错误时抛出。PHP7中这些错误包括执行负数位移操作、以及调用intp()导致的超出整数范围之外的值。
AssertionError:Error子类,通过assert发出的断言失败时抛出异常。只有ini设置zend.assertions、assert.exception为1并且启用断言时,执行assert()时才会在为false时抛出AssertionError异常。
ParseError:Error子类,当解析PHP代码发生错误时会抛出异常。
TypeError:Error子类,当传递给函数的参数类型与它对应的声明参数类型不匹配;从函数返回的值与声明的函数返回类型不匹配以及在严格模式下将无效数量的参数传递给内置的PHP函数时会抛出异常。
pisionByZeroError:ArithmeticError子类,当分母为0或者当0被用作模运算符(%)时,从intp()中抛出异常。在除法(/)操作符中使用0只会发出警告,如果分子为0结果为NAN,如果分子非0则结果为INF。
ArgumentCountError:PHP7.1起,TypeError子类,当传递给用户定义的函数或方法少于定义的参数数量时抛出异常。
<?phpdeclare(strict_types=1);function foo(string $arg){ return 'test' . $arg;;}function testArithmeticError(){ try { $value = 1 << -1; } catch (ArithmeticError $e) { echo 'show ArithmeticError:'; echo $e->getMessage(); }}function testAssertionError(){ ini_set('zend.assertions', 1); ini_set('assert.exception', 1); try { assert(1>2); } catch (AssertionError $e) { echo 'show AssertionError:'; echo $e->getMessage(); }}function testParseError(){ try { eval('asset(1>2)'); } catch (ParseError $e) { echo 'show ParseError:'; echo $e->getMessage(); }}function testTypeError(){ try { foo(123); } catch (TypeError $e) { echo 'show TypeError:'; echo $e->getMessage(); } }function testpisionByZeroError(){ try{ 1%0; }catch(pisionByZeroError $e){ echo 'show pisionByZeroError:'; echo $e->getMessage(); }}function testArgumentCountError(){ try{ foo(); }catch(ArgumentCountError $e){ echo 'show ArgumentCountError:'; echo $e->getMessage(); }}//foo("ArithmeticError")();//foo("AssertionError")();//foo("ParseError")();//foo("TypeError")();//foo("pisionByZeroError")();//foo("ArgumentCountError")();?>
相关推荐:
php中的错误级别,php错误级别_PHP教程
以上就是PHP中定义的一些内置错误的详细内容,更多请关注Gxl网其它相关文章!
内容总结
以上是为您收集整理的PHP中定义的一些内置错误全部内容,希望文章能够帮你解决PHP中定义的一些内置错误所遇到的程序开发问题。 如果觉得技术教程内容还不错,欢迎将网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。