2009-07-08 17 views
23

データベースクラスにselect()メソッドがあり、オプションのブール引数$ sumがあります。この引数は、メソッドでCOUNT(*)も使用するかどうかを指定するために使用されます。PHP警告を表示する方法はありますか?

私は属性が(つまり、私は$の合計と()を選択し呼び出すとき= falseを設定されていない場合はクラス - >合計にアクセスしようとした場合、それらの通常のPHPエラーのように、警告を表示したいと思います。

は、このような警告を表示する方法はありますか、私はエラーをエコーと幸せでなければなりません?

答えて

28

あなたは警告を生成したい場合は、あなたが

trigger_error($yourErrorMessage, E_USER_WARNING); 

trigger_error()を書くべきではエラーレベル(NoticeWarningまたはFatal error)を設定するための$error_typeパラメータがあります。定数は、それぞれ、以下のとおりです。

E_USER_NOTICE    // Notice (default) 
E_USER_WARNING   // Warning 
E_USER_ERROR    // Fatal Error 

NoticeWarningはそれを継続して聞かせながらFatal errorは、シークエントPHPコードの実行を停止すること。

PHP 5.5からは、Finallyステートメントも考慮してください。

12

あなたがtrigger_error()を試みることができる。

+9

... E_WARNINGを第2引数として使用する。 –

+7

'trigger_error()'はE_USERファミリの警告のみを受け付けます。代わりにE_USER_WARNINGを使用してください。 – jevon

4

あなたはオブジェクト指向のアプローチを行っているので、私はお勧め調べるexceptions.

+1

+1例外はデバッグのための完全なバックトレース情報を与えますが、trigger_error()は有用なファイル名/行番号を与えません。 –

+1

はい、そうですが、この問題の例外は非常に問題です。それは簡単に回復可能な致命的でないエラーです。開発者に何が起こったのかを知らせるには、警告を発するだけで十分です。 – igorsantos07

+0

理由により警告が存在します。何かが*もっともらしい*が必ずしも間違っているとは限らないので、あなたはそれらを無視してあなたの好奇心をそそる方法で続けるべきではありません。例外をスローすると、プログラマーは**スクリプトが終了する前に**エラーに対処しなければなりません。デベロッパーに通知したいだけなら、例外が正しくない可能性があるときにプログラムが続行されないため、Exceptionはより強力な方法です。続行したい場合は、コードを試して、エラーをキャッチして、それを適切に処理してください。 –

関連する問題