2011-10-21 30 views
0

在我的開發機器中,我將error_reporting設置爲E_ALL | E_STRICT,以查看我的代碼中發生的所有錯誤消息。 但是,當我處理捕獲的異常,如:異常消息和開發者在開發時發送了錯誤

try { 
    throw new MyException('Exception message.'); 
} catch (MyException $e) { 
    // code that handles the exception but without print anything 
} 

PHP始終顯示錯誤消息:

MyException: Exception message in file://path/to/failed/file.php 

和PHP後不能發送新的報頭。

你知道一些方法來避免自動生成的PHP錯誤,通過提出但捕獲異常與display_errors=Onerror_reporting=E_ALL |E_STRICT

回答

0

如果您打印該消息,標題將被髮送,期間。如果你不需要打印它,不要。相反,您可以記錄它。

+0

我不打印消息,是打印消息的PHP錯誤處理程序。我想避免這種情況。 –

+0

從你的問題:'echo $ e-> getMessages();'。我誤解了什麼嗎? – middus

+0

對不起,我添加了回聲。 –

0

好的,那是我的錯。

如果你已經安裝了XDebug,如果你的XDebug配置有 xdebug.show_exception_trace = 1

八方通將引發異常的XDebug將轉儲堆棧跟蹤。