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。






使用Phar来打包发布PHP程序(什么是phar包)

简单来说,Phar就是把Java界的jar概念移植到了PHP界。 Phar可以将一组PHP文件进行打包,还可以创建默认执行的stub(或者叫做 bootstrap loader),Phar可以选择是否...
  • guyue35
  • guyue35
  • 2016年12月24日 14:57
  • 982

PHP程序使用PHPMailer发送邮件和附件

PHPMailer发送邮件附件php代码实现

php程序实现多线程处理

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

phpscan是php程序木马扫描器

把下面代码,拷贝到php目录的下,新建一个php文件,拷贝好运行就可以了,密码下面找,还有另外一种扫描器,在这里:http://blog.csdn.net/fgdfgasd/article/detai...

使用YII框架进行PHP程序的计划任务

1.当你通过yiic创建一个webapp应用后, 会在webapp/protected/下生成yiic.php, 由于是命令行应用,所以这里的yiic.php其实就是与webapp下的index.p...

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

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

PHP程序中的文件锁、互斥锁、读写锁使用技巧解析

文件锁 全名叫 advisory file lock, 书中有提及。 这类锁比较常见,例如 mysql, php-fpm 启动之后都会有一个pid文件记录了进程id,这个文件就是文件锁。 这个锁可...
  • mengdc
  • mengdc
  • 2017年07月22日 07:29
  • 220

PHP程序,将csv转成sql文件并导入数据库

PHP程序,将csv转成sql文件并导入数据库代码的由来最近接手一个老项目,经过了多名程序员开发,因为公司不大,之前的交接做的也不好,很多业务逻辑都没有书面描述,一些需要功能还需要程序员手工处理,所以...

Linux实现使用定时任务执行php程序

php程序已经写好了,位置:/data/html/XXX/redis_to_mysql.php,php安装位置为:/app/bin/php,查找php安装位置使用 whereis php ...

在windows下开发面向Linux的php程序环境搭建

为了后面开发php扩展等什么打基础,同时兼顾windows上的软件的日常使用,决定在客户机(Linux)上架设samba服务器来同步工程文件夹... 下面这个是在x-server 下进行简单配置...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PHP程序中的错误与异常
举报原因:
原因补充:

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