我使用set_exception_handler()在我的PhP程序中設置了一個異常處理程序,它實際上工作正常。從某種意義上說,它確實能夠捕獲我不能處理的異常,並且如處理程序中所提供的那樣,記錄異常詳細信息。那麼,我爲什麼抱怨?問題是,除了記錄與文件名,並在異常處理程序行數正確的細節,它也顯示在瀏覽器中以下消息:儘管被異常處理程序捕獲,PhP異常消息顯示
Fatal error: Exception thrown without a stack frame in Unknown on line 0
我的信念是,也許這個特定的異常消息是從哪裏來的stdout流,而處理程序捕獲的異常來自stderr流。另一種可能性是上述消息由錯誤處理程序模塊發出,而不是PhP的異常處理程序模塊。無論如何,我希望所有的異常消息都去一個處理程序。我也有一個錯誤處理程序設置如下:
set_error_handler('SS_error_handler', E_ALL);
這種情況是如何處理的?致命錯誤消息是否來自PhP的錯誤消息報告模塊?如果是這樣,那麼異常處理程序和錯誤處理程序之間是否存在重疊,因爲它們在某些錯誤/異常時都會觸發?如果相關,我想補充說這個特定的異常是MySQL的PDO語句。
任何解釋將不勝感激。
有史以來最糟糕的建議! –
等待,我有更多的建議,只是谷歌搜索)) – Benedictus
現在它更糟糕...永遠不要壓制錯誤,總是記錄和分析它們! –