70PHP错误处理方式

PHP错误处理方式

1.1 知识能力

php程序的错误(Errors)是指程序执行前解析(Parse)过程的错误,或解析(Parse)后执行程序时产生的错误,主要分为两种:

 环境错误(Environmental Errors):环境错误也称为外部错误(External Errors),这是指程序执行环境所导致的错误,并不是程序设计的问题。例如:没有权限无法写入档案,或档案不存在。

 程序错误(Programming Errors):程序错误是程序中的问题(Bugs),可能是语法错误(Syntax Errors)、语义错误或程序逻辑错误(Logical Errors)。 错误处理(Error Handling)是一种处理错误的机制,可以处理解析过程的语法和语义错误,或执行时的环境错误和程序错误中的逻辑错误。

PHP根据错误的严重程度,将错误分成不同的分类,包括:

 Parse Errors:剖析错误是指PHP程序代码的语法和语义错误,这是执行前,解析过程产生的错误。

 Fatal Errors:致命错误是很严重的执行时错误,它会导致PHP程序代码终止执行。

 Warnings:警告错误是一种尚能补救且非致命的执行时错误,PHP引擎会试图继续执行PHP程序代码。

 Notices:注意错误是一种小且非致命的错误,只是用来提醒程序代码可能出现的错误。例如:没有初始化变量。

每个分类又根据情况分成不同的等级(level),程序中可以根据需要,只报告特定等级的错误,例如,通常会把Notices等级的错误对用户屏蔽掉。

PHP的处理方式,包括以下几种手段:

 基本的错误处理方式有:

 不理会

 终止程序显示错误讯息

 写入日志文件

 使用自定义错误处理进行补救

PHP程序最简单的错误处理就是使用exit()或die()终止程序执行并显示一段错误信息。

exit()与die()并不是真正的函数,它是PHP的语言结构(Language Construct),例如:使用PHP的fopen()函数打开文件,如下所示:

$fp = fopen($filename,

这样,当打开文件发生错误的时候,将会打印一个错误信息,并且终止程序的执行。

1.2 职业素质 如果程序的代码缺少错误检测编码,那么程序看上去很不专业,也为安全风险敞开了大门。PHP错误处理有几个好处,在开发阶段:开发时输出所有的错误报告,有利于我们进行程序调试;在运行阶段:程序不会输出任何一种错误报告,以免用户看到。

1.3 开发流程

实例:文件错误。

第一步:定义文件变两个;

$filename =

第二步:打开文件,并进行错误处理。 $fp = fopen($filename, 'r')

or exit(

1.4 项目拓展

PHP除了提供了错误处理方式以外,还提供了异常处理方式。同其他语言一样,PHP提供了异常处理机制,且机制与其他语言非常相似,有兴趣的读者可以自行开发比较。

PHP错误处理方式

1.1 知识能力

php程序的错误(Errors)是指程序执行前解析(Parse)过程的错误,或解析(Parse)后执行程序时产生的错误,主要分为两种:

 环境错误(Environmental Errors):环境错误也称为外部错误(External Errors),这是指程序执行环境所导致的错误,并不是程序设计的问题。例如:没有权限无法写入档案,或档案不存在。

 程序错误(Programming Errors):程序错误是程序中的问题(Bugs),可能是语法错误(Syntax Errors)、语义错误或程序逻辑错误(Logical Errors)。 错误处理(Error Handling)是一种处理错误的机制,可以处理解析过程的语法和语义错误,或执行时的环境错误和程序错误中的逻辑错误。

PHP根据错误的严重程度,将错误分成不同的分类,包括:

 Parse Errors:剖析错误是指PHP程序代码的语法和语义错误,这是执行前,解析过程产生的错误。

 Fatal Errors:致命错误是很严重的执行时错误,它会导致PHP程序代码终止执行。

 Warnings:警告错误是一种尚能补救且非致命的执行时错误,PHP引擎会试图继续执行PHP程序代码。

 Notices:注意错误是一种小且非致命的错误,只是用来提醒程序代码可能出现的错误。例如:没有初始化变量。

每个分类又根据情况分成不同的等级(level),程序中可以根据需要,只报告特定等级的错误,例如,通常会把Notices等级的错误对用户屏蔽掉。

PHP的处理方式,包括以下几种手段:

 基本的错误处理方式有:

 不理会

 终止程序显示错误讯息

 写入日志文件

 使用自定义错误处理进行补救

PHP程序最简单的错误处理就是使用exit()或die()终止程序执行并显示一段错误信息。

exit()与die()并不是真正的函数,它是PHP的语言结构(Language Construct),例如:使用PHP的fopen()函数打开文件,如下所示:

$fp = fopen($filename,

这样,当打开文件发生错误的时候,将会打印一个错误信息,并且终止程序的执行。

1.2 职业素质 如果程序的代码缺少错误检测编码,那么程序看上去很不专业,也为安全风险敞开了大门。PHP错误处理有几个好处,在开发阶段:开发时输出所有的错误报告,有利于我们进行程序调试;在运行阶段:程序不会输出任何一种错误报告,以免用户看到。

1.3 开发流程

实例:文件错误。

第一步:定义文件变两个;

$filename =

第二步:打开文件,并进行错误处理。 $fp = fopen($filename, 'r')

or exit(

1.4 项目拓展

PHP除了提供了错误处理方式以外,还提供了异常处理方式。同其他语言一样,PHP提供了异常处理机制,且机制与其他语言非常相似,有兴趣的读者可以自行开发比较。


相关内容

  • 第2章 打下坚实基础--基本语法
  • 第2章 从本章开始,我们将全面介绍PHP的基础知识.本章的主要内容包括:PHP的数据类型.类型之间的转换.PHP的变量和常量.表达式和运算符,以及流程控制语句. 2.1 从" Hello World"开始 PHP语法入门 在开始学习PHP语言之前,我们先来看一个最简单的PHP应用 ...

  • 一句话木马的工作原理
  • 一句话木马的工作原理:一句话木马分析服务端与客户端. '一句话木马'服务端(是用于本地的html提交脚本木马文件) 就是我们要用来插入到asp文件中的asp语句,(不仅仅是以asp为后缀的数据库文件),该语句将回为触发,接收入侵者通过客户端提交的数据,执行并完成相应的操作,服务端的代码内容为 其中v ...

  • 计算机专业毕业论文
  • 题 目 基于PHP 的图书管理系统 学院 专业班级 姓名 指导教师 2015年12月 摘 要 随着科学技术的进步和计算机行业的迅速发展,人们的工作效率得到大大提高.计算机信息处理系统的引进已彻底改变了许多系统的经营管理. 图书管理系统是学校管理机制中的重要组成部分,通过对图书馆管理系统的运行管理机制 ...

  • 2016毕业(设计)论文排版格式模板
  • 毕业(设计)论文 课题名称: 作者姓名: 学 号: 专 业: 班 级: 指导教师: 完成时间: 1313130 计算机应用技术 微机1313班 2016年5月 摘 要 渠道,论坛是Internet上最常用的交流工具之一,越来越多的人开始把论坛作为他们„„ php开发技术:Mysql 目 绪 论 . ...

  • 教程--本地安全策略设置
  • 一般情况下是不需要执行什么程序的,所以推荐不要执行系统程序目录,可以指向一个目录, 然后把需要执行的程序拷贝过去,比如: safe_mode_exec_dir = D:/tmp/cmd 但是,我更推荐不要执行任何程序,那么就可以指向我们网页目录: safe_mode_exec_dir = D:/us ...

  • 面试题目及答案
  • 1.PHP的意思? PHP是一个基于服务端来创建动态网站的脚本语言,您可以用PHP和HTML生成网站主页 2.谈谈对mvc的认识? 答:由模型(Model),视图(View),控制器(Controller)完成的应用程序 由模型发出要实现的功能到控制器,控制器接收组织功能传递给视图; 3.写出发贴数 ...

  • 吉林大学珠海学院毕业论文标准模版2106
  • 吉林大学珠海学院 毕 业 论 文 基于PHP+MYSQL的企业图书管理系统 系 别: 计算机系 专 业 名 称: 国际贸易 学 生 姓 名: 张三 学 号: 7510891 指导教师姓名.职称: 李四 教授 完成日期:2015年 月 日 摘 要 目前,社会上流行的图书管理系统已经有很多,包括各种各样 ...

  • PHP V5.2 中的新增功能,第 2 部分: 使用新输入过滤扩展功能
  • 本文是共有五部分的系列文章的第二部分,我们将继续介绍 PHP V5.2 的新增功能,本文主要介绍输入过滤. 接受用户输入或来自不受信任来源的任何其他数据是 PHP开发人员在开发应用程序时可能承担的最常见风险之一.您经常需要引入来自未知来源的数据以使应用程序运行,但是这就给黑客提供了插入任意代码或以其 ...

  • 各大公司的PHP面试题
  • update 表名 set Date = GETDATE() where UserName = (is_file($folder.isort() 12. 写5个不同的自己的函数,来截取一个全路径的文件的扩展名,允许封装php库中已有的函数. 13. 一群猴子排成一圈,按1,2,-,n依次编号.然后从 ...