2013-08-07 142 views
3

我在我的PHP項目中編寫了自己的Exception和Error處理程序。使用自己的異常處理程序時保留Xdebug異常處理

但是,在進行開發時,我希望讓XDebug除了我自己之外還能處理正常的「異常」和「錯誤」。

我發現如果我自己的錯誤處理程序返回FALSE,我可以很容易地讓XDebug繼續執行「錯誤」處理。但是我找不到一種方法來獲得類似「異常」處理的效果。

我希望我可以手動調用XDebug函數。 xdebug_print_function_stack()是我能看到的最接近的東西,但它不會給出觸發的異常的真實堆棧跟蹤。

回答

2

Xdebug的增加了一個屬性每拋出Exception,即xdebug_message,其中包含通常由Xdebug的顯示錶的內容。

所以可視化與堆棧跟蹤作爲Xdebug的一個例外,你可以這樣做以下:

try { 
    $result = fetch(); 
}catch(Exception $e){ 
    echo '<table>' . $e->xdebug_message . '</table>'; 
} 

雖然搜索的xdebug_message我就可能重複的問題,迷迷糊糊的文檔:Methods for an Xdebug Exception class