美文网首页
PHP中的异常处理

PHP中的异常处理

作者: 小小小胡 | 来源:发表于2017-04-07 15:21 被阅读34次

一下内容纯属于个人笔记

PHP中的异常处理(在没有关闭php.ini中的错误提示下)

在PHP中异常和错误是不一样的,异常是出现正常逻辑之外的情况,而错误是指运行时出错了,比如调用了一个没有定义的东东!

通常可以使用   

try{

}catch(Exception $e){

echo $e->getMessage();

}

但是,这里并不是所有的异常和错误都能够捕获到的,这里仅仅可以来捕捉有throw抛出的异常,所以如果没有设置自定义的异常处理,假设直接使用以上那个,是解决不了警告或者致命错误的,例如,我需要读取某一个目录下的所有文件及目录

try{

        if($handle = opendir("/home")) { while($file=readdir($handle)){} }catch(Exception $e){}

在这里会出现相应的警告Warning: opendir(/home/huyouheng/.gnupg): failed to open dir: Permission denied in/home/huyouheng/workspace/php/pdo/File.php,权限拒绝

所以在这里自定义一个处理异常的方法

function myErrorHandler(){                                                                                                                                           throw new Exception("文件打开失败", 0);                                                                         }

这里很简单的定义了一个抛出异常的方法,然后用函数set_error_handler($this->myErrorHandler()); 或者用set_exception_handler来设置处理错误的方法,这个函数一定要放在你的try里面,不然没有用

try{                                                                                                                                                                        set_error_handler($this->myErrorHandler());                                                                                            $handle = opendir($p);                                                                                                                               while($file=readdir($handler)){}                                                                                                                //............                                                                                                                                           }catch(Exception $e){ echo $e->getMessage();}  

这样的话就会走你自定义异常方法,在捕获到做相应的处理!一定要被捕获到,否则也会报错,方法很多种,自己根据需求进行!

HP7实现了一个全局的throwable接口,于是,PHP7中更多的Error变为可捕获的Exception返回给开发者,如果不进行捕获则为Error,如果捕获就变为一个可在程序内处理的Exception。这些可被捕获的Error通常都是不会对程序造成致命伤害的Error,比如未定义的东西!

参考文献:http://php.net/manual/zh/class.exception.php

相关文章

  • php学习笔记(六)

    PHP异常处理 从PHP5开始,PHP支持异常处理,异常处理是面向对象一个重要特性,PHP代码中的异常通过thro...

  • PHP学习笔记 - 进阶篇(10)

    异常处理 抛出一个异常 从PHP5开始,PHP支持异常处理,异常处理是面向对象一个重要特性,PHP代码中的异常通过...

  • php 异常处理

    从PHP5开始,PHP支持异常处理,异常处理是面向对象一个重要特性,PHP代码中的异常通过throw抛出,异常抛出...

  • PHP异常

    抛出一个异常 从PHP5开始,PHP支持异常处理,异常处理是面向对象一个重要特性,PHP代码中的异常通过throw...

  • 1.10 PHP异常处理

    1.抛出一个异常 从PHP5开始,PHP支持 异常处理 ,异常处理是面向对象的一个重要特性,PHP代码中的异常通过...

  • PHP中的异常处理

    一下内容纯属于个人笔记 PHP中的异常处理(在没有关闭php.ini中的错误提示下) 在PHP中异常和错误是不一样...

  • 6,PHP异常

    首先 先说说我对php异常处理的理解: 从上述的代码中,可以看出,php的异常处理,都需要依靠开发者自己进行分支判...

  • php源码-try、catch过程-原理

    在php中我们通过try catch 捕获异常, 通过 throw来抛出异常, 优秀文章推荐:异常处理 先来说说...

  • 10.2.1 PHP异常处理1

    10.2.1 PHP异常处理1 异常(Exception)处理用于在指定的错误发生时改变脚本的正常流程。是PHP5...

  • 10.2.2 PHP异常处理2

    10.2.2 PHP异常处理2 异常(Exception)处理用于在指定的错误发生时改变脚本的正常流程。是PHP5...

网友评论

      本文标题:PHP中的异常处理

      本文链接:https://www.haomeiwen.com/subject/dashattx.html