php错误处理

原创 2017年01月03日 20:25:58

错误的分类

语法错误:程序没法运行,直接提示语法错误

运行时错误:只有程序运行到某行,或在某些特定的情形下运行时才会发生的错误(主要面对)

逻辑错误:程序从头到尾都没有发生(并提示)错误,但程序运行结果错误

 

错误分级

每个级别的错误,对应一个内部的名称—系统常量

系统错误:E_ERROR(严重错误,一发生,系统立即停止)、E_WARNING、E_NOTICE

E_ERROR=1(系统错误)

E_WARNING=2(系统警告)

E_PARSE=4(语法错误)

E_NOTICE=8(系统提示)

(系统内部的整数常量,这些常量是我们对该类错误进行控制的标识符)

用户自定义错误

只有3个:E_USER_ERROR、E_USER_ WARNING、E_USER_ NOTICE

可以在程序中,自己创建错误---是为了针对某些数据的不合理情形,而创建的错误(如年龄超过188等)

其他

E_ALL:代表所有错误

E_STRICT:代表严格性语法错误(当前php版本可执行但不欢迎使用)

 

错误的触发

正常触发:程序执行过程中体现出来

人工触发:程序员通过程序代码而产生的一个错误

    trigger_error(“错误描述信息”,用户错误代号);

显示错误报告

display_errors:控制是否显示

error_reporting:控制显示哪些级别的错误

控制的方式有两种:

Php.ini文件中:对系统中所有运行的php程序都有效

display_errors=On/Off

error_reporting= E_NOTICE (只显示notice这一级别错误提示)

error_reporting= E_NOTICE | E_WARNING(显示notice和warning一级别错误提示)

error_reporting= E_NOTICE & E_WARNING(什么都不显示)

error_reporting= E_ALL(显示所有,但不包含strict错误)

error_reporting= E_ALL | E_STRICT(显示所有错误,开发中最常用)

如果在显示所有错误的基础上,关闭个别错误,与状态设定(关闭)的原理一致,在显示所有错误的基础上将个别错误取反并做按位与运算

在网页代码中,只影响当前的网页代码(优先级别高)

ini_set(“控制项”,值);(几乎可以设定所有php.ini中的设定项  ini_get(“设定项名称”)用户获取某项的值)

示例: ini_set(“display_errors”,1);//1表示显示,0表示不显示

ini_set(“error_reporting”, E_NOTICE);(只显示notice这一级别错误提示)

记录错误日志(2种途径)

 log_errors:控制是否记录错误日志

error_log:控制错误日志记录到哪里,给定一个文件名就可以

一个特殊值:syslog,会记录到操作系统日志中,而不会记录到文件

Php.ini中:

  log_errors=On

error_log=“错误日志文件名”(没有给定路径,系统会在每个文件夹下建立文件并记录进去)

当前文件中使用ini_set(“log_errors”,On);

自定义错误处理器

就是自己控制错误的显示内容和记录内容

分两步完成:

1.设定自定义错误处理函数

set_error_handler(“函数名”);

2.定义该函数(并通常需要设定4个参数)

function error_handler($errNo,$errMsg,$errFile,$errLine){

 // 处理该4个参数

}

 

注意:该函数无需手工调用,出错时会自动调用;一旦用自定义错误,则系统不在出错误处理;如果系统发生严重错误,则不会调用自定函数,由系统处理(显示并终止)

版权声明:本文为博主原创文章,未经博主允许不得转载。

[PHP] MVC思想----错误处理类

//错误处理类 class Error { //初始化方法 public static function start(){ //处理Warning和notice级别错误 set_er...
  • d8681148
  • d8681148
  • 2016年06月05日 19:26
  • 264

CI框架源码完全分析之核心文件(异常处理)Exceptions.php

使用CI框架,我们通常使用一下三个函数处理错误: show_error(‘消息’ [, int $status_code = 500 ] )show_404(‘页面’ [, ‘log_error’]...
  • qq_22253823
  • qq_22253823
  • 2015年04月26日 14:56
  • 1127

PHP的错误处理

php的错误处理方法可以通过以下方式重写(在代码开始的地方自定义即可): error_reporting(0);//0为不输出PHP自带的错误输出,E_ALL为所有的警告和错误都输出 ...
  • u014359108
  • u014359108
  • 2016年12月08日 17:31
  • 306

php错误处理和php异常处理机制

将错误报告写入日志中 一、指定错误报告 error_reporting = E_LL 二、关闭错误输出 display_errors = Off 三、开启错误日志功能 log_err...
  • u011986449
  • u011986449
  • 2014年03月09日 20:54
  • 1462

3.PHP自定义错误处理器

1. 使用set_error_handler 自定义错误处理函数说明 1.创建错误处理函数 2.设置不同级别调用函数 3.set_error_handler函数指定接管错误处理 ...
  • wjc19911118
  • wjc19911118
  • 2015年07月11日 11:57
  • 1181

PHP 错误处理

在 PHP  中, 默认 的 错误 处理 很 简单。一 条消 息会被 发送 到浏览器,这 条消 息 带 有文件名、行号以及一 条描述错误 的 消 息。PHP  错误 处理在创建脚本和 web 应用程序...
  • u011151235
  • u011151235
  • 2018年02月09日 14:44
  • 8

php错误处理

  • pkgray
  • pkgray
  • 2014年06月16日 23:59
  • 300

PHP错误处理

程序一定会有错误的时候 天才的程序员说,我的程序绝对OK,没有错误,我从不处理错误。的确,天才程序员的程序从来没有错误,但程序只要运行,就会有错误!不管你信不信,我反正是信的。 错误不只是...
  • yiqitony
  • yiqitony
  • 2013年11月26日 13:09
  • 586

PHP 错误处理

在 PHP 中,默认的错误处理很简单。一条消息会被发送到浏览器,这条消息带有文件名、行号以及一条描述错误的消息。 PHP 错误处理 在创建脚本和 web 应用程序时,错误处理是一个重要的部分。如果...
  • u011852589
  • u011852589
  • 2013年09月13日 19:32
  • 471

php 错误处理

  • encircles
  • encircles
  • 2016年03月22日 19:23
  • 102
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:php错误处理
举报原因:
原因补充:

(最多只允许输入30个字)