2012-09-06 36 views
0

在try catch中總是捕獲基類Exception類的好習慣嗎?應該在try catch中捕獲異常類嗎?

try 
{ 
    // 
    // Piece of code 
    // 
} 
catch (CustomException $my_ex) 
{ 
    // Handle CustomExcepton 
} 
catch (Exception $other_exceptions) 
{ 
    // Handle all other exceptions 
} 

如果是這樣,爲什麼?

回答

2

在PHP中,您可以安裝global exception handler。 需要時,您可以在代碼中捕獲異常,所有未處理的異常將轉至全局異常處理程序。根據你的戰略,你決定做什麼。

當然,當你決定死的時候,一個明確的錯誤信息和日誌是值得讚賞的。一般情況下,如果你可以從異常中恢復,使用try .. catch塊,否則讓全局異常處理程序完成他的工作,並且不會恢復。

0

你應該只捕捉你現在如何處理的異常。其他人應該鼓起來調用方法和一些全局處理程序。