2012-04-18 3 views
0

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 

をメッセージとスタックトレースはクールですが、私は本当に多くの情報をしたいと思います。そのため、私は、ローカル変数やその値など、より多くの情報でExceptionを拡張したいと考えています。問題は、おそらくPHPは上記の情報を出力しますが、代わりに "Uncaught exception 'MyException'というテキストを出力するということです。

PHPがキャッチされない例外を表示する方法を無効にすることはできますか?私はPHPの関数について読んでいますが、捕捉されていない例外をすべて捕まえるためのバックアップとして設定することができます。おそらく私は自分のメッセージをフォーマットしてそのプロセスを終了させるためにその機能を使うことができます。あなたがset_exception_handler()を探しているトピック

+0

各 'throw 'サイトにコードを書くことなく株式PHPにローカル変数を取得する方法はありません。あなたのコントロールの下にないコードによってスローされる例外にはローカル変数もなく、*あなたができることは何もありません*。 – Jon

+0

しかし、私はまだ反射でいくつかのクールなものを行うことができます... :-) – Hubro

答えて

1

上のすべての有用な情報について

感謝。

しかし、ローカル変数などを取得することはできません。PHPのエラー処理/デバッグは、運用システムには適していないデバッグ拡張を使用しない限り、あまりにも貧弱です。

+0

それは問題ありません。私が例外を投げるものだから、少なくとも私が気に入っている情報にはタグを付けて適切に表示することができます。ありがとう! – Hubro

関連する問題