多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
## php 错误 ### php.ini关于Error的设置 - error_reporting = E_ALL 设置php错误报告级别 - display_error = On 是否显示错误报告 - log_error = On 是否开启日志记录 - error_log = D:/www 错误日志记录位置 ### Error 类别 - 语法错误:违背了程序语言的规则错误,称之为语法错误。比如不以分号结束的语句,或函数写错时都会出现语法错误。语法错误PHP会在运行前检测出来 - 运行错误:经过语法错误检测后,将开始运行PHP代码,在此发生的错误为运行时错误。常见运行错误1.加载不存在文件。2.连接数据库失败。3.远程请求失败。4.函数或类不不存在。 - 逻辑错误:逻辑错误是指软件开发工程师在业务逻辑开发中造成错误。 ### 错误报告 | 值 | 常量 | 描述 | | --- | --- | --- | | 1 | E\_ERROR | 致命的运行时错误。这类错误一般是不可恢复的情况,例如内存分配导致的问题。后果是导致脚本终止不再继续运行 | | 2 | E\_WARNING | 运行时警告 (非致命错误)。仅给出提示信息,但是脚本不会终止运行。 | | 8 | E\_NOTICE | 运行时通知。表示脚本遇到可能会表现为错误的情况。 | | 64 | E\_COMPILE\_ERROR | 致命编译时错误。类似 E\_ERROR | | 2048 | E\_STRICT | 启用 PHP 对代码的修改建议,以确保代码具有最佳的互操作性和向前兼容性。 | | 8192 | E\_DEPRECATED | 运行时通知。启用后将会对在未来版本中可能无法正常工作的代码给出警告。 | | 8191 | E\_ALL | 所有错误和警告,除级别 E\_STRICT 以外。 | ### 错误处理 - 通过自定义错误与日志处理引擎,让错误处理个性化。同时有些错误是在用户访问发生的,通过日志可以更全面检测网站运行状态。 - 通过set_error_handler 捕获错误,并注册错误处理函数。一般在开发环境下显示错误信息,在生产环境下记录错误日志 ## php 异常 - 异常需要手动抛出。 ``` $result = new PDO() // 抛出错误 $result = new PDO('') // 抛出异常 ``` ### 异常和部分错误都实现了Throwable接口。 * ArithmeticError 数学运算错误 * DivisionByZeroError 除数为0的错误 * ParseError 解析代码时发生错误如调用`eval`函数时 * TypeError 函数参数类型错误,函数返回值错误 ### 自定义异常类 - 需要继承系统的Exception - 可重写Exception类的__toString方法 - 实际开发中需要根据不同业务创建处理错误的异常类,推荐使用异常来处理错误而不是PHP的错误处理机制。(可在set_error_handle中注册的方法抛出一个异常,然后走自定义异常的流程)