【PHP】错误处理

错误处理

错误处理:指的是系统(或者用户)在对某些代码进行执行的时候,发现有错误,就会通过错误处理的形式告知程序员。

错误分类

1)语法错误:用户书写的代码不符合PHP的语法规范,语法错误会导致代码在编译过程中不通过,所以代码不会执行(Parse error)

2)运行时错误:代码编译通过,但是代码在执行的过程中会出现一些条件不满足导致的错误(runtime error)

3)逻辑错误:程序员在写代码的时候不够规范,出现了一些逻辑性的错误,导致代码正常执行,但是得不到想要的结果

错误代号

所有看到的错误代号在PHP中都被定义成了系统常量(可以直接使用)

1)系统错误:

  • E_PARSE:编译错误,代码不会执行
  • E_ERROR:fatal error,致命错误,会导致代码不能正确继续执行(出错的位置断掉)
  • E_WARNING:warning,警告错误,不会影响代码执行,但是可能得到意想不到的结果
  • E_NOTICE:notice,通知错误,不会影响代码执行

2)用户错误:E_USER_ERROR, E_USER_WARNING, E_USER_NOTICE

  • 用户在使用自定义错误触发的时候,会使用到的错误代号(系统不会用到)

3)其他:E_ALL,代表着所有从错误(通常在进行错误控制的时候使用比较多),建议在开发过程中(开发环境)使用

注意:所有以E开头的错误常量(代号)其实都是由一个字节存储,然后每一种错误占据一个对应的位,如果想进行一些错误的控制,可以使用位运算进行操作

  • 排除通知级别notice:E_ALL & ~E_NOTICE
  • 只要警告和通知:E_WARNING | E_NOTICE

错误触发

程序运行时触发:系统自动根据错误发生后,对比对应的错误信息,输出给用户:主要针对代码的语法错误和运行时错误。

  • 比如说:代码最后忘记写分号;

人为触发:知道某些逻辑可能会出错,从而使用对应的判断代码来触发响应的错误提示trigger_error(错误提示)

$a = 10;
$b = 0;
if($b == 0)
{
    
    
    trigger_error('被除数不能为0');
}

可以通过第二个参数进行严格性控制错误提示,默认是notice:通知错误,不会影响代码执行

image-20230801104751285

猜你喜欢

转载自blog.csdn.net/chuxinchangcun/article/details/132451149