PHP中的正常拋出未捕獲的異常會產生類似這樣的輸出:我可以重新定義PHP顯示未捕獲異常的方式嗎?
Fatal error: Uncaught exception 'Exception' with message 'Insufficient permissions or something' in /home/codemonkey/foo/bar/File.php:143 Stack trace: #0 /home/codemonkey/dev/foo/bar/SomeOtherFile.php(85): foo\bar\File::fromUpload(Array) #1 /home/codemonkey/dev/foo/bar/OmniDataFileImport.php(35): foo\bar\OmniDataFileImport->performFileImportLogic() #2 [internal function]: foo\bar\OmniDataFileImport->post(Object(Request), false) #3 /home/codemonkey/dev/foo/vendor/tonic/lib/tonic.php(654): call_user_func_array(Array, Array) #4 /home/codemonkey/dev/foo/dispatch.php(22): Resource->exec(Object(Request)) #5 {main} thrown in /home/codemonkey/dev/foo/broadnet/files/File.php on line 143
的消息和堆棧跟蹤是很酷,但我真的想了解更多信息。出於這個原因,我想擴展異常的更多信息,如本地變量和它們的值。問題是,PHP可能仍會輸出相同的上述信息,但是會顯示文本「未捕獲異常MyException」。
我可以覆蓋PHP顯示未捕獲異常的方式嗎?我記得閱讀了PHP中的函數,您可以將其設置爲備份以捕獲所有未捕獲的異常。也許我可以使用該功能來格式化我自己的消息並殺死進程。
感謝的話題
在沒有在每個'throw'站點編寫代碼的情況下,你無法獲得庫存PHP的本地變量;由不在你控制下的代碼拋出的異常也不會有局部變量,並且你沒有辦法做* *。 – Jon 2012-04-18 11:30:22
但我仍然可以用反射做一些很酷的東西... :-) – Hubro 2012-04-18 11:42:46