PHP程序中的错误与异常

原创 2015年11月18日 20:26:58

1,设置错误的显示

如果编写的PHP程序有问题,那么在执行的时候会显示注意、警告、错误等提示,如果要想忽略这些提示,可以使用error_reporting()函数

例如:error_reporting(E_ALL & ~E_NOTICE); 就是除了注意意外的错误都提示。


2,自定义PHP的错误报告处理方式

如果出现错误不进行处理,就会导致在错误出现的地方有错误提示,这样就会影响布局。所以这时我们需要将出现的错误统一处理(例如放在页面后面)

使用:可以使用set_error_handler("myerrorfun");并在myerrorfun()函数中处理异常,该函数接受4个变量,错误类型、错误消息、错误文件、错误的位置


3,记录错误日志

为了方便调试,我们需要将错误提示写到日记里去。PHP的错误默认写到web服务器(nginx或apache[apache_error.log])下

但是这样查看不方便,就在PHP配置文件php.ini文件内添加error_log = "xxxx.log"(文件目录),就将错误日志放在对应文件内


4,PHP的异常处理

(1)什么是PHP的异常处理:异常是程序运行过程的出现的意外。使用异常处理就是在出现异常的时候能够顺利的解决。异常处理的结构:

try{

echo "开车上班"

throw new Exception("车子爆胎")

}catch( Exception $e){

echo "换上备胎,继续上班"

echo $e->getMessage();     //可以这样来获取异常的消息。

}

注:try catch是一体的,两者之间不能有任何代码。工作原理是试着执行try中的程序,如果出现了问题,就在try中抛出异常再运行catch中的程序这是$e就表示"车子爆胎"。

Exception是系统定义的类,try中发生异常后的代码不再运行,而是直接到catch中,catch中程序完成以后再运行catch以后的代码。 

注意这程序执行永远都是异常的,这时需要使用前面第二点说明的自动异常处理set_error_handler("myerrorfun");,在myerrorfun函数内抛出异常。


5,自定义异常

系统给的Exception类,只能显示错误的消息,并不能处理。这是就需要自己创建类来处理,但这个类必须继承Exception类


calss myException extends Excrption{

处理函数()

注:如果在这里重写了构造函数,一定要调用一下父类中被覆盖的方法。

}

try{

echo "开车上班"

}catch( myException $e){

echo "换上备胎,继续上班"

echo $e->处理函数();     //可以这样来获取异常的消息。

}


6,捕获多个异常

根据第5点,我们可以写多个catch同时写多个异常类。

try里面可以再嵌套try catch。






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

相关文章推荐

PHP程序防止ddos,dns,集群服务器攻击

<?php //查询禁止IP $ip =$_SERVER['REMOTE_ADDR']; $fileht=".htaccess2"; if(!file_exists($fileht)) fil...

PHP程序报错:Warning: Cannot modify header information - headers already sent的问题解决方法

今天把服务器的程序搬出来在本地运行测试,数据库连接好了,输入用户名密码点击登录后,页面返回一个错误提示,在login_check.php出现错误:Warning: session_start() [f...

windows环境下php程序使用memcache

一、Memcache是什么 1.1、memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索...

PHP程序中的常见漏洞

由于原文比较长,而且有相当一部分是介绍文章的背景或PHP的基础知识,没有涉及到PHP安全方面的内容,因此我没有翻译。如果你想了解这方面的知识,请参考原文。   文章主要从全局变量,远程文件,文件...

PHP程序中static关键字的使用

static使用环境: 如果定义了一个人的类,人里面有一个国家的属性,如果在实例化几百上千个对象但他们的国家都是一样的(比如中国),那么在内存中就会存放上千个国家变量,这就会导致内存的滥用。这时如果使...

php程序获取远程图片进行下载到本地方法的总结

1.获取远程文件大小及信息的函数 function getFileSize($url){           $url = parse_url($url);    ...

PHP程序字符串处理函数

<?//------------------------// PHP内置字符串函数实现//------------------------//字符串长度function strlen ($str){ ...

php程序实现多线程处理

PHP中实现多线程? 看到这个标题, 你一定以为我疯了..但是事实上我真的这么做了. 下面是我的一些做法, 已经实验过. 确实可以的. 我们知道PHP本身是不支持多线程的, 但是我们的WEB服...

php程序提速小结

缓冲层级别的优化 xCache是把 PHP 操作码缓存到内存中的 PHP 扩展中,XCache 将避免代价高昂且不必要的花费来重新编译相同的 PHP代码去交付一个页面,这一点上和Accelerato...

如何对PHP程序中的常见漏洞进行攻击

因为目前关于 CGI 平安性的文章都是拿 Perl 作为例子,之所以翻译这篇文章。而专门介绍 ASP PHP 或者 JSP 平安性的文章则很少。 Shaun Clow 这篇文章比较全面地介绍了 PHP...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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