第章 PHP错误异常处理与.ppt

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

第8章 PHP错误、异常处理与调试 在程序开发中,难免会因为某种原因而产生错误。如何去避免、调试、修复错误以及对程序可能发生的异常的处理是一个程序员必备的能力。PHP提供了良好的错误提示,在进行程序调试可根据提示信息对错误进行排除。 8.1 PHP错误类型 在PHP程序开发中,可能会产生很多种错误,通常会有以下几种错误。 语法错误:在程序中使用了错误的语法而导致的错误。 语义错误:在程序中正确地使用了PHP的语法,但是没有任何意义,程序达不到预想的效果。 逻辑错误:在程序中使用的逻辑与实际上需要的逻辑不符。 注释错误:在程序中写的注释与该程序代码的意义不符。 运行时错误:由于运行环境等原因而导致的错误。 8.1.1 语法错误 每一种语言都有属于自己的语法。在程序开发中如果使用了错误的语法,就将导致产生一个语法错误。 8.1.2 语义错误 语义错误是在使用了正确语法的基础上,使用了错误的格式而导致的。其代码如下所示。 ?php $str_1 = Hello ; $str_2 = World.; $str_3 = $str_1 + $str_2; //使用了错误的字符串连接符 echo $str_3; ? 8.1.3 逻辑错误 逻辑错误对于PHP来讲不是错误,因为语法、语义上没有任何问题。但是因为程序代码存在着逻辑着问题,进而导致程序得不到所期望的结果。 8.1.4 注释错误 注释对于程序来讲是必不可少的。因为在分布式开发中,随时都有可能去读其它程序员的代码,如果没有注释,将会花费大量的时间读懂别人的代码。另外对于后期的维护也是相当困难的。对于注释错误,比没有更加可怕,因为开发人员往往会只看注释不会再花时间去看代码。 8.1.5 运行时错误 运行时错误与程序代码无关,它是由脚本运行的环境等因素造成的。比如说在Linux系统中,文件权限不对等而引发的错误。 8.2 错误处理 不管是程序引发的错误,还是环境因素引发的错误,默认情况下,PHP都会给出提示信息。这些提示信息包含有服务器的运行环境信息。在实际的Web环境中,将这些信息显示出来,必然给服务器带来安全隐患。因此,必须对可能出现的错误进行相应的处理。 8.2.1 错误级别 PHP中的错误是通过一个错误级别进行划分的。从最基本的通告到最严重的错误,这个错误级别标识着所产生的错误的严重性。 8.2.2 php.ini对错误处理的设置 在前面的章节中曾讲到了php.ini文件,PHP的环境几乎都是在这个文件中进行设置。这里有两项关于错误处理的设置:一个是display_errors,另一个是error_reporting。前一变量是用来告诉PHP是否显示错误,它的默认值为Off,也即不显示错误信息,如果设置为true,将显示错误信息。后一变量是告知PHP如何显示提示信息,默认值为E_ALL ~E_NOTICE,即显示除注意信息外的所有提示信息。 8.2.3 错误处理 在程序中,因各种原因可能导致的错误,PHP都会给出相应的提示信息。而对于错误信息的处理,除了可采用直接在php.ini文件中进行设置的方法外,还可以直接在程序中进行设置。 1.错误信息的隐藏 2.错误信息的定制 3.超时错误的处理 8.3 PHP异常 在实际的系统运行中,有可能存在一些不可预知的错误。比如说文件权限不对、文件不存在等,虽然可以采用前面所讲的使用if语句进行错误检测。但是,PHP提供了一种更好的异常处理方法,它能更好的解决因环境等因素而引发的异常。 8.3.1 异常处理原理 在PHP中,异常处理是使用其关键字try、catch和throw来实现的。将需要进行异常处理的代码放入try代码块内,以便捕获可能存在的异常。每一个try语句必须至少有一个catch语句与之对应,catch语句用于捕获异常。使用多个catch语句可以捕获不同的类所产生的异常。throw语句用于抛出异常。 8.3.2 异常处理 前面已讲到,异常处理是由关键字try、catch和throw实现的。 1.异常类Excetion 2.设置异常处理函数set_exception_handler 3.完整的异常信息 8.3.3 扩展的异常处理类 通常,在应用中可能存在着各种异常。如果所有异常都使用同一个异常类或者异常处理函数去获取异常,将不利于问题的解决。为此,通常是根据异常的类型不同而定义不同的自定义异常处理类。这些自定义异常处理类都是继承自PHP自带的异常处理类Exception。 8.3.4 异常的传递与重掷 在进行实际应用中的流程处理时,有可能触发到异常,但却无法马上执行,希望暂时忽略处理异常,在适当的时候再处理异常。对于这种情况有一种方案,将处理异常的责任交回调用当前方法的代码,然后在上一层cat

文档评论(0)

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

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

1亿VIP精品文档

相关文档