您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

php异常TryCatch测试

2025/6/22 19:55:12发布16次查看
http://blog.csdn.net/mayongzhan - 马永占,myz,mayongzhan 首先感谢老曹同学。。。 主要测试了多层级使用异常。 注意蓝色加粗字。 页面try catch里使用c的 c1,c1里使用b的b1,b1里使用a的a1。 默认的是:a1里抛出异常,b1里捕获a1的异常,然后再把刚才的异
http://blog.csdn.net/mayongzhan - 马永占,myz,mayongzhan
首先感谢老曹同学。。。
主要测试了多层级使用异常。
注意蓝色加粗字。
页面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
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;
?>
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product