php教程-第六章错误、常处理与调试.ppt

  1. 1、本文档共37页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
php教程-第六章错误、常处理与调试

异常(Exception)的定义 异常:是在运行的代码序列中产生的一种异常情况 异常定义了程序中遇到的非致命的错误,而不是编译时的语法错误,例如:程序要打开一个不存在的文件、网络连接中断、数据库打开失败,装载一个不存在的类等。 调试步骤 调试应该遵循其一般步骤,首先判断错误最可能出现在哪一环节,然后针对该环节采取一些有效的措施来查找错误,如修改程序,测试结果等。其具体流程图如图所示。 配置指令 处理错误首先要查找错误,查找错误可以根据PHP提供的错误指令来进行错误提示,也可以编写代码进行错误的查找。这里首先了解错误报告的配置指令,如下页表列出的是php.ini能够显示的错误类型的指令及作用说明。 php.ini中的错误报告参数 在php.ini文件中,display_errors可以设置是否将以上设置的错误信息输出到用户端,on表示要显示,off表示不显示。 error_reporting函数,错误报告级别设置 error_reporting(0); //关闭所有错误报告 error_reporting(E_ALL ^ E_NOTICE); //除了“提示”之外的所有信息 在配置文件中可设置(运行时状态) error_reporting = E_ALL ~E_NOTICE PHP错误报告的级别参数 E_ALL:表示显示所有错误 E_ALL ~E_NOTICE:表示显示所有错误,但是警告(Notice)信息将被忽略 在开发过程中的设置 error_reporting = E_ALL display_errors = on html_errors = on //当错误发生时,显示一个HTML格式的错误信息 log_errors = off //关闭日志记录 运行阶段的设置 error_reporting = E_ALL ~E_NOTICE display_errors = off html_errors = off log_errors = on error_log = “D:/myphperror.log” //记录错误日志的路径 Ignore_repeated_errors = on //重复的错误只显示一次 Ignore_repeated_source = on //在一个文件某行的重复错误只显示一次 错误的类型 编程错误 未定义符号 轻量级错误 PHP产生的错误 编程错误 语法/编译错误 ?php echo “hello”; hello / 这里是汉字 ? 未定义符号 常量与变量 数组索引 函数与类 程序逻辑错误 缺少分号 缺少分号是PHP编程中常见的语法错误。分号意味着一句执行语句的结束,缺少分号就是指当一个语句执行完后,却没有书写分号,程序无法识别语句的结束,造成下一个执行语句错误,从而使程序无法运行。 缺少一个引号 缺少引号是另一个常见的语法错误。引号是成对出现的,缺少一个引号就是只有一个单独的引号,即只有开始或结束位置的引号。当只有一个引号时,程序找不到另一个引号的位置,就会提示错误信息。 缺少整个引号 当使用echo命令输出字符串不加引号时,程序就无法识别命令执行的内容,将造成程序的错误。 缺少关键字 缺少关键字是指缺少一些命令或函数,程序不能正确识别代码要进行的操作而造成错误,如输出时忘记写echo命令等。 缺少括号 缺少括号是指应该有括号的没有加上括号,或者括号没有成对出现。这类语法错误可能引起致命错误,所以应加以注意。 变量前缺少符号 变量前缺少符号指缺少声明变量的$符号。在PHP中,声明变量时在变量名前添加$符号,计算机才能识别其代码性质,如果缺少,将导致错误。 轻量级错误 操作系统的差别 PHP中的函数一些只对特定操作系统有效 PHP中的函数有关操作系统的不同平台效果不一样 不同系统路径分隔符,文件名大小写的区分 外部程序或服务,无法运行于所有的平台 PHP配置文件产生的问题:ini_get()函数没有打开为空,打开是1 运行期间的错误,例如:磁盘、网络、数据库出现问题 抑制轻量级错误,使用@ 在开发过程中,记得多用print / echo和print_r / var_dump来跟踪得到的变量、对象或数组内容 轻量级错误 文件操作与权限 编程人员在使用fopen函数进行文件操作时,如果没有考虑到被操作文件的权限,则可能导致运行错误。 连接数据库失败 不能连接数据库的情况很多,可能是用户名、密码不正确,或者服务器工作不正常等原因,如果连接不上或者访问受限都会报告错误。 逻辑错误 计算错误 不测试返回值 计算错误 计算错误如计算结果要保留float型的,却整乘整除,从数组读出数据时从1开始等,都会带来计算错误,这类错误有时很难查找,要加以注意。 不测试返回值

文档评论(0)

qiwqpu54 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档