- ベストアンサー
PHPでfatal errorが出ても無視して続行する方法はありませんでしょうか?
yambejpの回答
set_error_handler()などエラー処理をいれてみては? http://www.php.net/manual/ja/book.errorfunc.php たとえば、 <?PHP print "x"; trigger_error("hoge", E_USER_ERROR); print "y"; ?> を実行すると、xが表示された後Fortal errorが発生してyは表示されません。 こうすると、フォータルエラーをつかんで復帰します エラーの種類によってcaseを分けて処理していけばよいでしょう。 (さすがにシンタックスエラーは回避できないとおもいますが) <?php function myErrorHandler($errno, $errstr, $errfile, $errline) { switch ($errno) { case E_USER_ERROR: print "致命的なエラー つづく...<br>"; break; default: print "その他のエラー"; break; } return true; } $old_error_handler = set_error_handler("myErrorHandler"); print "x"; trigger_error("hoge", E_USER_ERROR); print "y"; ?>
関連するQ&A
- PHPのエラーを無視したい
phpで以下のエラーが出ます。 原因は初期値の関連の問題のようですが、この警告が出ないようにする方法を教えてください。 Warning: Creating default object from empty value
- ベストアンサー
- PHP
- PHPのエラー「Unexpected character ...」「syntax error, unexpected ...」について
PHP Warning: Unexpected character in input: ''' (ASCII=39) state=1 in /home/***/***.php on line 25 PHP Parse error: syntax error, unexpected '<' in /home/***/***.php on line 26 という2行のエラーが表示されました。 まったく明快な答えは探せませんでした。 もしも少しでも手がかりになるような情報がありましたら教えて下さい。 お願いします。
- 締切済み
- PHP
- PHP+PostgreSQLでのエラー
PHP3+PostgreSQLで開発をしています。 クラスライブラリを使って動かそうとしているのですが、 -------------------------------------------------- Warning: Division by zero in /○○.php3 on line 10 Parse error: parse error in /○○.php3 on line 10 -------------------------------------------------- というエラー?ワーニングが出ます。 これは何を意味しているのでしょうか? ご教授ください。 上記のワーニングにあるline 10には require($include_path/dbconnect.inc"); を記述しています。 PHP4徹底攻略/ソフトバンク パブリッシング のサンプルプログラム(P136~)を参考にコーディングしました。 また、このようなエラーメッセージがわかるサイトがありましたら重ねて教えて頂きたいと思います。 よろしくお願いします。
- ベストアンサー
- その他(データベース)
- PHPのParse errorについて質問
PHPのParse errorについて質問ですが、 昨日より、Apacheサーバーなどの設定を変更していないにも関わらず、急に以下の様なエラーが頻繁に 表示されます。 原因は、なんでしょうか? どうやって修正すればいいのでしょうか? Parse error: parse error, unexpected T_ELSE in ディレクトリ名/index.php on line 43
- ベストアンサー
- PHP
- PHPの例外処理
PHPの例外処理について教えてください function test() { try{ $a = 10; $b = 0; $result = $a/$b; } catch(Exception $e){ //エラー処理 } } 上記でcatchが実行されるためにはどのようにすれば良いでしょうか?例えば if($b == 0) { throw new Exception('例外'); } を「$result = $a/$b;」の前に書いておくなどすればcatchされるのはわかりますが、 想定されるすべての例外のthrow処理を記載するなんてことはしたくありません。 実行してエラーだったら自動的にthrowされる、なんていうことはPHPでは無理でしょうか?
- ベストアンサー
- PHP
- PHPのエラー表示を変更(非表示)したい
PHPを実行して、上手く処理できないと下記のよなエラー表示がされると思います。 Warning: ~~~(エラーの内容)~~~ on line 17(エラーの行数) このようなエラー表示を非表示にしたり、エラーが出た場合に別のファイルを参照して表示させる事はできるのでしょうか? 403や404、500のエラー表示は、htaccessで変更できますよね。 phpのエラー表示も変更する事はできるのでしょうか? アドバイスをお願い致します。
- ベストアンサー
- PHP
- PHPのセグメンテーション違反に対する例外処理について
PHPのセグメンテーション違反に対する例外処理について 再帰呼び出しのプログラム(error_seg.php)を作成し、Linuxのシェルで $ php error_seg.php と実行しました。 実行環境: PHPのバージョン:5.2.10 Linuxのバージョン:2.6.18-164.15.1.el5 (mockbuild@builder16.centos.org) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-46)) #1 SMP Wed Mar 17 11:37:14 EDT 2010 プログラムは下記の通りです。 <?php $cnt=0; function func(){ global $cnt; $cnt++; print $cnt . "回目の呼び出し\n"; func(); } try{ func(); }catch(Exception $e){ echo "例外発生:" . $e->getMessage()."\n"; } ?> ※このプログラムは、 http://d.hatena.ne.jp/syonbori_tech/20090414/1239717538 のサイトを参考にして作りました。 この結果、 1回目の呼び出し 2回目の呼び出し ・・・ 26187回目の呼び出し 26188回目の呼び出し セグメンテーション違反です と表示され、セグメンテーション違反を再現させました。 ※何回目でセグメンテーション違反が発生するかは、 その都度異なります。 プログラム中で、try-catchの例外処理を入れたのですが、 例外処理されないようです。セグメンテーション違反に対して 例外処理をすることはできないのでしょうか。 できるとすれば、どのように記述をすればよいでしょうか。
- ベストアンサー
- PHP
- MTをphp化したあとにRSSリーダーでエラーが出る。
タイトルそのままなのですが、 MTをphp化し、ソースの1行目も <?php echo '<?xml version="1.0" encoding="UTF-8" ?>'; ?> に書き換え、通常のブラウザで見る分にはきちんと表示されているのですが、 RSSリーダーで読み込むと Parse error: parse error, unexpected T_STRING in …php on line 1 のエラーになってしまいます。 解決策をご存知の方がいらっしゃいましたらご教授ください。 よろしくお願いします。
- 締切済み
- ブログ
お礼
http://keicode.com/cgi/php-error-handling.php 結局次に進めるのはtrycatchで拾える分のみにして、それ以外は上記サイトのregister_shutdown_functionを使ってエラー処理を行うことにしました。 set_error_handlerのキーワードで検索した時に引っかかってきたのがegister_shutdown_functionだったので、この回答が無ければたどり着けませんでした。 ありがとうございました。