学习PHP之路,错误信息处理

    xiaoxiao2022-07-12  148

    *一、错误处理

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

    1、错误分类 *语法错误:用户书写的代码不符合PHP的语法规范,语法错误会导致代码在编译过程中不通过,所以代码不会执行(parse error) *运行时错误:代码编译通过,但是代码在执行的过程中会出现一些条件不满足导致的错误(runtime error) *逻辑错误:程序员在写代码的时候不够规范,出现了一些逻辑性的错误,导致代码正常执行,但是得不到想要的结果。

    2、错误代号 #所有看到的错误代码在PHP中都被定义成了系统常量(可以直接使用) *系统错误: E_PARSE:编译错误,代码不会执行。 E_ERROR:fatal error,致命错误,会导致代码不能正确继续执行(出错的位置断掉) E_WARNING:warning,警告错误,不会影响代码执行,但是可能得到意想不到的结果。 E_NOTICE:notice,通知错误,不会影响代码执行。 *用户错误: E_USER_ERROR、E_USER_WARNING、E_USER_NOTICE 用户使用自定义错误触发的时候,会使用到的错误代号(系统不会用到) *其他:E_ALL,代表着所有从错误(通常在进行错误控制的时候使用比较多),建议在开发过程中(开发环境)使用。

    #所有以E开头的错误常量(代号)其实都是由一个字节存储,然后每一种错误占据一个对应排除通知级别notice:E_ALL & ~E_NOTICE 只要警告和通知:E_WARNING | E_NOTICE

    3、错误触发 *程序运行时触发:系统自动根据错误发生后,对比对应的错误信息,输出给用户:主要针对代码的语法错误和运行时错误。 *人为触发:知道某些逻辑可能出错,从而使用对应的判断代码来触发响应的错误提示 Trigger_error(错误提示): //处理脚本让浏览器按照指定字符集解析方法 header(‘Content-type:text/html;charset=utf-8’);

    可以通过第二个参数进行严格性格控制。

    4、错误显示设置 错误显示设置:那些错误该显示,以及该如何显示。 在PHP中,其实有两种方式来设置当前脚本的错误处理。

    #PHP的配置文件:全局配置:php.ini文件 Display_errors:是否显示错误 Error_reporting:显示什么级别的错误 #可以在运行的PHP脚本中去设置:在脚本中定义的配置项级别比配置文件高。(通常在开发当中都会在代码中去进行控制和配置) Error_reporting():设置对应的错误显示级别 Ini_set('配置文件中的配置项',配置值) Ini_set('error_reporting',E_ALL) Ini_set('display_errors',1)

    5、错误日志设置

    在实际生产环境中,不会直接让错误赤裸裸的展示给用户 1)、不友好 2)、不安全:错误会暴露网站很多信息(路径、文件名等) 所以在生产环境中,一般不显示错误(错误也比较少),但是不可能避免会出现错误(测试得时候不会发现所有的问题),这个时候不希望看到,但是又希望捕捉到可以让后台程序员去修改:需要保存到日志文件中,需要在PHP配置文件中或者代码中(ini_set)设置对应error_log配置项 1)、开启日志功能

    2)、指定路径

    6、自定义错误处理 最简单的错误处理:trigger_error()函数,但是该函数不会阻止系统报错

    PHP系统提供一种用户处理错误的机制:用户自定义错误处理函数,然后将该函数增加操作系统错误处理的句柄中,然后系统会碰到错误之后,使用用户自定义的错误函数

    1)如何将用户自定义的函数放到系统中?set_error_hander

    2)自定义错误处理的函数,系统有要求

    代码实现: 1)自定义错误处理函数:注意参数

    2)注册自定义函数:修改错误处理机制

    最新回复(0)