php Try Catch異常測(cè)試
頁(yè)面try catch里使用c的 c1,c1里使用b的b1,b1里使用a的a1。
默認(rèn)的是:a1里拋出異常,b1里捕獲a1的異常,然后再把剛才的異常拋出,c1捕獲,然后拋出,最后頁(yè)面捕獲并輸出。
結(jié)果是:
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
第二個(gè)測(cè)試:
把b1里面的throw $e去掉,就是不拋出。
結(jié)果是:
X-Powered-By: PHP/5.1.1
Content-type: text/html
end
第三個(gè)測(cè)試:
把b1里面的throw new Exception($e->getMessage());打開(kāi)。
拋出一個(gè)新的異常,這樣b1以上的調(diào)用都拿不到a1的異常了。
結(jié)果是:
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
第四個(gè)測(cè)試:
把b1里面的try catch throw都去掉。
結(jié)果:一切正常,就是說(shuō)中間的步驟不需要拋出,最上層也能拿到最下層拋出的異常。
只是有一個(gè)問(wèn)題,b中如果出先異常,就沒(méi)有辦法取到,如果需要也檢測(cè)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;
?>
相關(guān)文章
php入門(mén)之連接mysql數(shù)據(jù)庫(kù)的一個(gè)類(lèi)
php入門(mén)之連接mysql數(shù)據(jù)庫(kù)的一個(gè)類(lèi),學(xué)習(xí)php的朋友可以參考下2012-04-04
PHP調(diào)用Linux命令權(quán)限不足問(wèn)題解決方法
這篇文章主要介紹了PHP調(diào)用Linux命令權(quán)限不足問(wèn)題解決方法,本文是解決項(xiàng)目問(wèn)題總結(jié)而來(lái),通過(guò)修改sudo配置文件解決無(wú)權(quán)限執(zhí)行命令問(wèn)題,需要的朋友可以參考下2015-02-02
ThinkPHP自動(dòng)轉(zhuǎn)義存儲(chǔ)富文本編輯器內(nèi)容導(dǎo)致讀取出錯(cuò)的解決方法
這篇文章主要介紹了ThinkPHP自動(dòng)轉(zhuǎn)義存儲(chǔ)富文本編輯器內(nèi)容導(dǎo)致讀取出錯(cuò)的解決方法,需要的朋友可以參考下2014-08-08
PHP迭代器和迭代的實(shí)現(xiàn)與使用方法分析
這篇文章主要介紹了PHP迭代器和迭代的實(shí)現(xiàn)與使用方法,結(jié)合實(shí)例形式分析了PHP迭代器的概念、原理、定義與使用方法,需要的朋友可以參考下2018-04-04
PHP與MySQL開(kāi)發(fā)的8個(gè)技巧小結(jié)
LAMP 架構(gòu)的網(wǎng)站,我以前注重的多是安裝/配置方面的,講述開(kāi)發(fā)的相對(duì)較少,因?yàn)樽约簭氖麻_(kāi)發(fā)也少。看了以后,頗有啟發(fā),以前開(kāi)發(fā)中遇到的一些問(wèn)題,迎刃而解。所以翻譯出來(lái)和大家共享。2010-12-12

