エラー処理の表示・非表示-デバッグ関数

開発環境時にはエラーを見ながら修正していくのですがサーバーにアップしてエラーが表示される場合は開発環境の設定がサーバーと違うと言うことなんですが、作ったコードをアップしてサーバーでNOTICEエラーがあるといやですよね。このあたりのエラーはいっそのこと非表示にさせちゃいましょう。

ここでおさらいですがエラーには主に3種類あります。


スポンサーリンク

  • Parse error/syntax error(文法間違い・入力ミス)
  • Fatal error (実行が中断されるエラー)
  • Notice/Warning(実行はするが注意・警告があるエラー)

ほとんどのエラーとはパースエラーだと思います。入力ミスが原因です。セミコロンや括弧をつけ忘れたりと。
まあ、このたぐいは見て修正していくしか無いと思います。
実行が中断されるエラーは定義されていない関数などを呼び出そうとしたときのエラーが多いですね。
警告・注意はプログラム自体は実行されます。ただ注意(Notice)は結構面倒なので非表示にさせても良いかなと思います。

今回作ったプログラムは開発環境用に表示するエラーと本番にはエラーを非表示にする関数を作りました。

function debug_mode($mode) {
	if ($mode === true) {
		// エラー表示
		ini_set('display_errors', 1);
		error_reporting(E_ALL & ~E_NOTICE);
	} else {
		// エラー非表示
		ini_set('display_errors', 0);
		error_reporting(0);
	}
}
// エラー表示ならtrue、非表示ならfalse
debug_mode(true);

こんな感じです。この関数はエラー表示といってもNoticeは表示されないようにしてあります。
すべて出力する場合はerror_reporting(E_ALL & ~E_NOTICE);のところをerror_reporting(-1);
に変えればすべてのエラーが出力されます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です