零点起飞学PHP之错误处理
零点起飞学PHP之
第7章 错误处理 错误在编程的过程中通常是无法避免的。我们在前面 的学习过程中也碰到了多处错误。PHP系统可以帮助 我们就提示以及修正一些错误。我们也可以自己定义 一些抛出和处理错误方法。本章将详细讲解错误发送 的原因和种类以及处理这些错误的方法。
零点起飞学PHP之
7.1 错误发生的原因 错误发生的原因有多种,他们按照特点可以分为大的 四类,分别是语法错误、环境错误、逻辑错误和运行 时错误。本节就来介绍这些错误。
零点起飞学PHP之
7.1.1 语法错误 语法错误是最普遍也是最好解决的一类错误。顾名思 义,语法错误就是由于程序员在程序编写的过程中使 用了不能被PHP解析的错误语法。下面就来介绍一些 常见的语法错误。
零点起飞学PHP之
1.语句未正确结束 这类错误通常是一条语句缺少了语句结束符号——分 号。这类错误通常根据错误提示即可找到大概的位置 并修正。
零点起飞学PHP之
1.语句未正确结束 【示例7-1】演示语句未正确结束的错误。 从运行结果我们可以看出程序在运行后报错,提示在 代码第三行遇到了意料之外的“echo”,而真正的原 因是我们在代码的第2行没有正确地结束。解决办法就 是在第2行加入结束符即可,修正后的代码如下: 01 <?php 02 $num=10; 03 echo $num; 04 ?>
零点起飞学PHP之
2.括号不匹配 括号不匹配通常出现在多层嵌套和判断条件比较长的代码中。 【示例7-2】演示括号不匹配的错误。 从运行后的错误提示我们可以看到代码中第2行出现了不期望的 “{”,其实我们的错误是在if后多了一个“(”。修正后的代码 如下: 01 <?php 02 if(($a&&$b)||($b&&$c)){ 03 return 0; 04 } 05 ?> 这种错误通常可以通过编写代码时输入成对的括号后再在括号中 加入代码避免。
零点起飞学PHP之
2.括号不匹配 【示例7-3】演示花括号不匹配的错误。 从运行后的错误提示我们可以看出,代码第3行中出现了不 期望的“public”,而期望的是“{”,我们只需根据提示 在第2行代码后加入“{”即可。修正后的代码如下: 01 <?php 02 class car{ 03 public function test(){ 04 return 'test function.'; 05 } 06 } 07 ?>
零点起飞学PHP之
3.错误的关键字 这种错误在没有关键字提示的编辑器中出现很频繁, 而且错误的提示也常常会使人摸不着头脑。
零点起飞学PHP之
3.错误的关键字 【示例7-4】演示拼写错误的关键字引发的错误。 运行结果提示我们有不期望的“test”,而真正的原因是 “fucntion”拼写错误,初次遇到这种提示有时候会使人很 费解。修正后的代码如下: 01 <?php 02 function test(){ 03 return '这是一个测试函数。'; 04 } 05 ?> 语法错误的种类还有很多,这里就不再一一例举。
零点起飞学PHP之
7.1
.2 环境错误 环境错误通常是指PHP运行的环境和相关服务关联的 问题,例如PHP程序需要使用的相关模块没有被正确 加载、服务器没有启动、数据库配置错误等等。由于 我们使用的是集成开发环境,因此这些问题出现的概 率是比较小的,集成环境的制作者已经替我们做了大 量的工作。但是如果是初次自己搭建一个环境来运行, 通常情况下会非常的吃力。环境错误所涉及的编程语 言之外的知识比较多,因此本书我们不做详细讲解。
零点起飞学PHP之
7.1.3 逻辑错误 逻辑错误要比我们前面介绍的两种错误要隐蔽。逻辑 错误的代码在运行时不会出现明显的错误提示,但是 其运行的结果却并不是我们所期望的。
零点起飞学PHP之
7.1.3 逻辑错误 【示例7-5】演示有逻辑错误的代码。 从运行结果我们可以看出,程序没报出任何的错误, 而且单从运行结果来看也找不出任何的错误。但是仔 细看程序代码中的第14、15行调用函数时候传入的参 数,然后再对照运行结果来看,就会发现我们期望比 较的是25和30、1和99的大小,但是结果却成为了30和 30、99和99来比较大小。而代码的错误就是第5行中我 们将比较运算符(==)写成了赋值运算符(=)。修 正代码的后运行结果如图7.6所示。 这种错误往往就需要靠经验和使用工具来修正了。
零点起飞学PHP之
7.1.4 运行时错误 运行时错误是在程序运行过程中出现的。有这种错误 的代码往往在语法上没有任何错误,这种错误出现的 情况一般是不能正确地使用到资源。例如,要打开的 文件不存在或者没有操作的权限、连接数据库的账号 或者密码错误等等。这种错误还是比较容易解决的, 例如可以在读取文件之前首先检查文件是否存在等措 施。
零点起飞学PHP之
7.2 错误的分类 PHP中的错误分为标准错误和异常,下面就来介绍标 准错误和异常。
零点起飞学PHP之
7.2.1 预定义错误常量 PHP中定义了一些预定义的错误常量来表示需要采取 动作的错误等级,详细的内容如表所示。
零点起飞学PHP之
值 1 2 4 8 16 32 64 128
常量 E_ERROR E_WARNING E_PARSE E_NOTICE E_CORE_ERROR E_CORE_WARNING E_COMPILE_ERROR E_COMPILE_WARNING
256512 1024 2048 4096
E_USER_ERRORE_USER_WARNING E_USER_NOTICE E_STRICT E_RECOVERABLE_ERROR
819216384 30719
E_DEPRECATEDE_USER_DEPRECATED E_ALL
说明 致命的运行时错误。这类错误一般 是不可恢复的情况,后果是导致脚 本终止不再继续运行 运行时警告(非致命错误)。仅给出 提示信息,但是脚本不会终止运行 编译时语法解析错误 运行时通知。表示脚本遇到可能会 表现为错误的情况,但是在可以正 常运行的脚本里面也可能会有类似 的通知 在PHP初始化启动过程中发生的致 命错误 PHP初始化启动过程中发生的警告 (非致命错误) 致命编译
时错误 编译时警告(非致命错误) 用户产生的错误信息。由用户自己 在代码中使用PHP函数 trigger_error()来产生的 用户产生的警告信息。由用户自己 在代码中使用PHP函数 trigger_error()来产生的 用户产生的通知信息。由用户自己 在代码中使用PHP函数 trigger_error()来产生的 启用PHP对代码的修改建议,以确 保代码具有最佳的互操作性和向前 兼容性 可被捕捉的致命错误。它表示发生 了一个可能非常危险的错误,但是 还没有导致PHP引擎处于不稳定的 状态 运行时通知。启用后将会对在未来 版本中可能无法正常工作的代码给 出警告 用户产生的警告信息。由用户自己 在代码中使用PHP函数 trigger_error()来产生的 E_STRICT除外的所有错误和警告 信息
…… 此处隐藏:1507字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [高等教育]一年级家长课程教案
- [高等教育]封丘县人民医院深入推进纠正医药购销领
- [高等教育]2017年6月大学英语四级真题试卷及答案(
- [高等教育]2017年北京第二外国语学院文学院824中
- [高等教育]7 高中历史第7单元1861年俄国农奴制改
- [高等教育]【K12学习】4、实际测量-苏教版六年级
- [高等教育]药具培训试卷题库及部分参考答案
- [高等教育]本土电子元器件目录分销商如何赢得生意
- [高等教育]七年级岭南版美术教案
- [高等教育]书作文之书法活动通讯稿
- [高等教育]Endnote X 软件使用入门和用法总结(LS)
- [高等教育]嵌入式系统的现状及发展状况
- [高等教育]2012抗菌药物专项整治活动方案解读
- [高等教育]人教版新课本一年级数学下册期末试卷
- [高等教育]爱课程民法学观后感
- [高等教育]930机组使用说明书1
- [高等教育]煤气设备设施点检标准
- [高等教育]常见室内观叶植物图解
- [高等教育]312党员群众路线心得体会
- [高等教育]小学信息(苗版)第一册全册教案
- 在市---局2010党建大会上的讲话
- 《科哲》提纲及补充阅读材料(2010.7)
- 苏州高博软件技术职业学院论文开题报告
- 兼职导游管理的困境及对策探讨
- 基于通用设计理念的现代厨房产品语义研
- 康乐一中2010年至2011年度鼓号队、花束
- 第10章_数据收集整理与描述_期末复习课
- 2008年黑龙江林甸商贸购物中心营销策划
- 水硬度的测定实验报告
- 五分钟教你拍摄夜景光绘照
- 2014年临床妇产科三基三严试题及答案
- 0第二课 纾解压力第一站了解压力
- 解析建筑工程电气设备安装施工技术要点
- 地方性应用型本科高校“双师型”师资队
- 高考语文专题复习课件:小说阅读指导
- 装饰工程投标书2
- 大学生就业难问题探讨及对策
- English and Its History
- 青岛市城市房屋修缮工程质量监督管理办
- 初中英语形容词和副词的用法和练习题




