错误处理及调试.
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
6.1 错误处理概述
• 6.1.3 手动触发错误
在PHP中,可以根据不同的需求自定义错误,它们可以用于协助 调试、在发布给其他人的代码中生成不推荐使用的通知。
在程序开发中,可以使用PHP的内置函数trigger_error()来触发错 误,该函数声明如下:
bool trigger_error( string $error_msg [, int $error_type = E_USER_NOTICE ] ) 在上述声明中,第一个参数是错误信息内容,第二个参数是错误 类别,默认为E_UESR_NOTICE。
6.2 如何处理错误
• 6.ቤተ መጻሕፍቲ ባይዱ.1 显示错误报告
在PHP中实现显示错误的机制有以下几种方式: 1、修改配置文件 通过直接配置php.ini文件来实现显示错误报告,代码如下所示: error_reporting(E_ALL & ~E_NOTICE); display_errors = on; 上述代码中,error_reporting用于设置错误级别,display_errors 用于设置是否显示错误报告。第1行代码中E_ALL & ~E_NOTICE表示
6.1 错误处理概述
• 6.1.1 常见的错误类型
4、环境错误 环境错误是由于PHP开发环境配置的问题引起的代码报错,例如 用PHP画了一个五角星的图形。如果PHP扩展中却没有加载GD库, 这样PHP脚本执行时的报错就是环境错误。 处理错误的两种方法 − 标准PHP错误报告 标准PHP错误报告能够处理所有类型的错误,但是通常情况下,它 只适用于PHP5之前的版本。 − 异常处理 异常处理被用于表示发生了一个异常事件并中断正常执行的脚本。
6.1 错误处理概述
• 6.1.1 常见的错误类型
在PHP中,错误用于指出语法、环境或编程问题。根据错误出现
在编程过程中的不同环节,大致可以分为四类,具体如下: 1、语法错误 语法错误是指编写的代码不符合PHP的编写规范。语法错误最常 见,也最容易修复,例如,遗漏了一个分号,就会显示错误信息。这 类错误会阻止PHP脚本执行,通常发生在程序开发时,可以通过错误 报告进行修复,再重新运行检查。
6.1 错误处理概述
• 6.1.1 常见的错误类型
2、运行错误 运行错误一般不会阻止PHP脚本的执行,但是会阻止脚本做希望 它做的任何事情,例如,在调用header()函数前如果有字符输出, PHP通常会显示一条错误信息。虽然PHP脚本继续执行,但header()
函数并没有执行成功。
3、逻辑错误 逻辑错误是最让人头疼的,不但不会阻止PHP脚本的执行,也不 会显示出错误信息。例如,在if语句中判断两个变量的值是否相等。 如果错把比较运算符“==”写成赋值运算符“=”就是一种逻辑错 误,很难被发现。
6.2 如何处理错误
• 6.2.1 显示错误报告
3、die()函数
die()函数可以用来自定义输出错误信息,常用于业务逻辑的错误 显示。 注意:使用函数控制的方式只对当前脚本有效,而配置php.ini文件对 所有脚本都有效。
显示除E_NOTICE之外的所有级别错误,第1行表示显示错误报告。
6.2 如何处理错误
• 6.2.1 显示错误报告
2、error_reporting()和ini_set()函数 通过PHP语言提供的error_reporting()和ini_set()函数来实现显示错 误报告,代码如下所示: <?php error_reporting(E_ALL & ~E_NOTICE); ini_set('display_errors',1); ?> 上述代码中,ini_set()函数用来设置错误信息是否显示,error_report ing()函数用于设置错误级别。第2行表示显示除E_NOTICE之外的所有级 别错误,第3行表示显示错误信息。
6.1 错误处理概述
• 6.1.2 错误级别
PHP中的错误不仅有多种类型,并且每个错误都有一个错误级别 与之关联,用于表示当前错误的等级。 接下来,列举一些PHP中常见的错误级别,具体如下表所示。
级别常量 E_ERROR E_WARNNING E_PARSE E_NOTICE E_CORE_ERROR E_CORE_WANNINT E_COMPILE_ERROR E_COMPILE_WANNING E_USER_ERROR E_USER_WANNING E_USER_NOTICE E_STRICT E_ALL 值 1 2 4 8 16 32 64 128 256 512 1024 2048 30719 描述 致命的运行时错误,这类错误不可恢复,导致脚本停止运行 运行时警告,仅给出提示信息,但是脚本不会终止运行 编译时语法解析错误,解析错误仅仅由分析器产生 运行时通知,表示脚本遇到可能会表现为错误的情况 类似 E_ERROR,是由PHP引擎核心产生的 类似 E_WARNING,是由PHP引擎核心产生的 类似E_ERROR, 是由Zend脚本引擎产生的 类似 E_WARNING,是由Zend脚本引擎产生的 类似 E_ERROR, 由用户自己在代码中使用trigger_error()来产生的 由用户自己在代码中使用trigger_error()来产生的 类似 E_NOTICE,由用户自己在代码中使用trigger_error()来产生 的 启用 PHP对代码的修改建议,确保代码具有互操作性和向前兼容 性 E_STRICT除外的所有错误和警告信息
第六章 错误处理及调试
• 常见错误类型 • 异常处理 • 自定义错误处理器 • PHP调试技术
目录
错误处理概述 如何处理错误
异常处理
PHP调试技术
6.1 错误处理概述
• 6.1.1 常见的错误类型
错误处理的意义
在使用PHP编写Web应用程序时,经常会遇到各种各样的错 误,这时就需要相应的解决方法,错误处理是代码编写的一个重要部 分。如果代码中缺少错误检查,程序看上去会很不专业,并且程序会 存在很多安全隐患。使用恰当的方法处理调试错误,是我们开发路上 的一把利器。