异常与错误的概述
什么叫作异常?
异常是指程序运行中不符合预期状况以及与正常流程不一样的情况。php
好比你连接数据库,在参数都写上去的条件下,发现连接不上去,这就属于不符合预期 html
能够被 try-catch 捕捉获得thinkphp
什么叫作错误?
是属于php程序自身的问题,通常是由非法的语法,环境问题致使的,使得编译器没法经过检查,甚至没法运行的状况。
平时遇到的 warming、notice都是错误,只是级别不一样而已。 数据库
例如:segmentfault
- TypeError(类型错误) 我规定的函数参数类型和传入的参数不一致
- ArithmeticError (算数错误)
- ParseError (解析错误)在调入的文件中,include "demo.php",或者 eval();中有语法错误形成解析失败
- AssertionError(断言错误)当assert生效时产生该错误
- DivisionByZeroError (分母为零) 运算过程当中例如除法,分母为0
错误的级别
在 php 中的错误也是有级别的框架
Parse error
>Fatal Error
> Waning
> Notice
> Deprecated
函数
Deprecated 最低级别的错误(不推荐,不建议)
使用一些过时函数的时候会出现,程序继续执行
Notice 通知级别的错误
使用一些未定义变量、常量或者数组key没有加引号的时候会出现,程序继续执行
E_NOTICE // 运行时通知。表示脚本遇到可能会表现为错误的状况.
E_USER_NOTICE // 用户产生的通知信息。
Waning 警告级别的错误
程序出问题了,须要修改代码!!!程序继续执行
E_WARNING // 运行时警告 (非致命错误)。
E_CORE_WARNING // PHP初始化启动过程当中发生的警告 (非致命错误) 。
E_COMPILE_WARNING // 编译警告
E_USER_WARNING // 用户产生的警告信息
Fatal Error 错误级别的错误
程序直接报错,须要修改代码!!!中断程序执行,可以使用register_shutdown_function()函数在程序终止前触发一个函数
E_ERROR // 致命的运行错误,错误没法恢复,暂停执行脚本
E_CORE_ERROR // PHP启动时初始化过程当中的致命错误
E_COMPILE_ERROR // 编译时致命性错,就像由Zend脚本引擎生成了一个E_ERROR
E_USER_ERROR // 自定义错误消息。像用PHP函数trigger_error(错误类型设置为:E_USER_ERROR)
Parse error 语法解析错误
语法检查阶段报错,须要修改代码!!!中断程序执行,除了修改ini文件,将错误信息写到日志中,什么也作不了
E_PARSE //编译时的语法解析错误