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错误处理

程序一定会有错误的时候 天才的程序员说,我的程序绝对OK,没有错误,我从不处理错误。的确,天才程序员的程序从来没有错误,但程序只要运行,就会有错误!不管你信不信,我反正是信的。 错误不只是...

PHP错误处理

基本的错误处理:使用die()函数 if(!file_exists("welcome.txt")){ die("File not found"); }else{ $file=fopen...

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

PHP 错误处理

在 PHP 中,默认的错误处理很简单。一条错误消息会被发送到浏览器,这条消息带有文件名、行号以及描述错误的消息。 PHP 错误处理 在创建脚本和 Web 应用程序时,错误处理是一个重要...

PHP 错误处理

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

PHP错误处理

 程序一定会有错误的时候 天才的程序员说,我的程序绝对OK,没有错误,我从不处理错误。的确,天才程序员的程序从来没有错误,但程序只要运行,就会有错误!不管你信不信,我反正是信的。 ...

PHP 错误处理

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

php错误处理

php错误处理

php基础之错误处理

错误分类 语法错误:程序运行前都会检测语法,如果语法有问题,则不会运行,一般IDE会帮我们check了。 运行时错误:程序语法检测通过,在运行期间发生的错误,一般分为三种->提示性错误 警告性错误...

26. 不要忽视错误!

不要忽视错误!         有天晚上我经过一条街去酒吧见一些朋友,我们曾经在一起喝过,急切地想再见到他们。匆忙中,我没有看路,被道路边缘绊了一下,结果摔倒在地。我想,好吧,谁叫你不注意,活该。 ...

菜鸟和老鸟都无法避免的问题——未将对象引用设置到对象的实例

“未将对象引用设置到对象的实例”相信这个问题只要是写过代码的不论技术高低都会遇到过,这句话的意思就是说我们在引用对象之前没有对对象进行初始化。
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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