php Try Catch异常测试

 更新时间:2009年03月01日 23:20:14   投稿:mdxy-dxy  
首先感谢老曹同学。。。主要测试了多层级使用异常。 注意蓝色加粗字。

页面try catch里使用c的 c1,c1里使用b的b1,b1里使用a的a1。

默认的是:a1里抛出异常,b1里捕获a1的异常,然后再把刚才的异常抛出,c1捕获,然后抛出,最后页面捕获并输出。
结果是:
X-Powered-By: PHP/5.1.1
Content-type: text/html

#0 D:\workspace\myzCollection\test.php(16): a->a1()
#1 D:\workspace\myzCollection\test.php(28): b->b1()
#2 D:\workspace\myzCollection\test.php(37): c->c1()
#3 C:\Program Files\Zend\ZendStudio-5.2.0\bin\php5\dummy.php(1): include('D:\workspace\my...')
#4 {main}end

 

第二个测试:
把b1里面的throw $e去掉,就是不抛出。
结果是:
X-Powered-By: PHP/5.1.1
Content-type: text/html

end

 

第三个测试:
把b1里面的throw new Exception($e->getMessage());打开。
抛出一个新的异常,这样b1以上的调用都拿不到a1的异常了。
结果是:
X-Powered-By: PHP/5.1.1
Content-type: text/html

#0 D:\workspace\myzCollection\test.php(28): b->b1()
#1 D:\workspace\myzCollection\test.php(37): c->c1()
#2 C:\Program Files\Zend\ZendStudio-5.2.0\bin\php5\dummy.php(1): include('D:\workspace\my...')
#3 {main}end

 

第四个测试:
把b1里面的try catch throw都去掉。
结果:一切正常,就是说中间的步骤不需要抛出,最上层也能拿到最下层抛出的异常。
只是有一个问题,b中如果出先异常,就没有办法取到,如果需要也检测b的话,那么也要在b中加上try catch
X-Powered-By: PHP/5.1.1
Content-type: text/html

#0 D:\workspace\myzCollection\test.php(16): a->a1()
#1 D:\workspace\myzCollection\test.php(28): b->b1()
#2 D:\workspace\myzCollection\test.php(37): c->c1()
#3 C:\Program Files\Zend\ZendStudio-5.2.0\bin\php5\dummy.php(1): include('D:\workspace\my...')
#4 {main}end

 

<?php
class a {
 public function a1 () {
 try {
  throw new Exception('123');
 } catch (Exception $e) {
  throw $e;
 }
 }
}

class b {
 public function b1 () {
 try {
  $a = new a();
  $a->a1();
 } catch (Exception $e) {
  throw $e;
  //throw new Exception($e->getMessage());
 }
 }
}

class c {
 public function c1 () {
 try {
  $a = new b();
  $a->b1();
 } catch (Exception $e) {
  throw $e;
 }
 }
}

try {
 $c = new c();
 $c->c1();
} catch (Exception $e) {
 echo $e->getTraceAsString();
}
echo 789;

?>

相关文章

  • 访问编码后的中文URL返回404错误的解决方法

    访问编码后的中文URL返回404错误的解决方法

    这篇文章主要介绍了访问编码后的中文URL返回404错误的解决方法,本文使用的是替换方法,当然也可以使用加密方法来解决,最后附妹子图一张,需要的朋友可以参考下
    2014-08-08
  • PHP session垃圾回收机制实例分析

    PHP session垃圾回收机制实例分析

    这篇文章主要介绍了PHP session垃圾回收机制,简单分析了session垃圾回收机制的原理、配置及相关使用技巧,需要的朋友可以参考下
    2019-06-06
  • PHP5函数小全(分享)

    PHP5函数小全(分享)

    本篇文章是对PHP5函数进行了详细的总结与分析,需要的朋友参考下
    2013-06-06
  • php简单实现查询数据库返回json数据

    php简单实现查询数据库返回json数据

    这篇文章主要介绍了php简单实现查询数据库返回json数据,并附上2则示例代码,非常的简单实用,有需要的小伙伴可以参考下。
    2015-04-04
  • PHP Trait代码复用类与多继承实现方法详解

    PHP Trait代码复用类与多继承实现方法详解

    这篇文章主要介绍了PHP Trait代码复用类与多继承实现方法,结合实例形式详细分析了Trait代码复用类的原理并结合具体实例形式分析了php基于Trait多继承的相关实现与使用技巧,需要的朋友可以参考下
    2019-06-06
  • PHP编程快速实现数组去重的方法详解

    PHP编程快速实现数组去重的方法详解

    这篇文章主要介绍了PHP编程快速实现数组去重的方法,结合实例形式分析了php数组去重复函数与使用技巧,需要的朋友可以参考下
    2017-07-07
  • php实现的SSO单点登录系统接入功能示例分析

    php实现的SSO单点登录系统接入功能示例分析

    这篇文章主要介绍了php实现的SSO单点登录系统接入功能,简单分析了SSO单点登录系统接入的原理与php相关实现技巧,需要的朋友可以参考下
    2016-10-10
  • php中日期类型转换实例讲解

    php中日期类型转换实例讲解

    在本篇文章里小编给大家整理了一篇关于php中日期类型转换实例讲解内容,有兴趣的朋友们可以学习参考下。
    2021-09-09
  • PHP与MySQL开发的8个技巧小结

    PHP与MySQL开发的8个技巧小结

    LAMP 架构的网站,我以前注重的多是安装/配置方面的,讲述开发的相对较少,因为自己从事开发也少。看了以后,颇有启发,以前开发中遇到的一些问题,迎刃而解。所以翻译出来和大家共享。
    2010-12-12
  • 用PHP的ob_start() 控制您的浏览器cache

    用PHP的ob_start() 控制您的浏览器cache

    Output Control 函数可以让你自由控制脚本中数据的输出。它非常地有用,特别是对于:当你想在数据已经输出后,再输出文件头的情况。
    2009-08-08

最新评论