2013-05-28 59 views
0

我有我添加錯誤記錄到一個複雜的Web應用程序,我希望能夠記錄異常:如何處理的異常記錄

try{ 
//typically mysql queries but can involve PayPal api, Facebook api amongst others 
     } 
     catch($e){ 
      logger($e); 
     } 

它是安全的假設$Ë將永遠是一個字符串,如果沒有的話,我可以調用哪個php函數,它總會給我'$ e'的字符串輸出,這樣我的記錄器可以將結果輸出存儲在我的日誌表中?

+2

yes $ e-> getMessage(); – Robert

+1

$ e ...一個字符串? $ e應該是一個具有__toString方法的Exception類的子類的一些實例... – bwoebi

回答

0

這不是C++,這是PHP的,這就是爲什麼你需要拋出要麼異常對象或對象的實例,它是子類異常

的從PHP手冊

拋出的對象必須是Exception類的一個實例或Exception的子類。嘗試拋出一個不是的對象會導致PHP致命錯誤。

所以這就是爲什麼你總是有機會獲得Exception類方法,例如:

  • 最終公共字符串的getMessage(無效)//獲取異常消息
  • 最終公共字符串getTraceAsString(無效) //獲取堆棧跟蹤爲字符串

這就是爲什麼您可以使用catch(Exception $e){ echo $e->getMessage();}來獲取總是字符串的異常或跟蹤消息。

如果要傳遞Exception對象,可以擴展Exception類並覆蓋__toString()方法以滿足您的需求。

您也可能感興趣Setting Exception Handler