2009-07-01 17 views
0

データベースクエリを実行するPHPスクリプトがあります。クエリが失敗した場合は、エラーをトリガするか、例外をスローする必要がありますか?後者を行うと、例外に直面した後でスクリプトの実行が停止することに気付きました。次のようにこのPHPスクリプトで例外またはエラーをスローしたいですか?

私のコードは次のとおりです。

if (!$this->connection[0]->query($this->query)) 
    throw new Exception($this->connection[0]->error); 

例このような(失敗したクエリ)の例外を使用しての長所と短所は何ですか?

答えて

2

は、一般的なエラー処理方法とこの関数に渡されるクエリによって異なります。例外を投げること自体は非常に良いアイデアです。IMHO の場合はどこかでキャッチされ処理されます。

1

クエリが失敗した場合の状況はどれほど悪いと思いますか。クエリが正しく実行されることが重要である場合は、間違いなく例外が発生します。

どちらを選択した場合でも、エラー/例外を正常に処理することを確認してください。 (試してみるなど)。

this stackoverflow questionもご覧ください。

0

これは外部のウェブサイトのためのものですが、開発段階でエラーを詳細に処理する傾向があります。サイトを公開する準備ができたら、エンドユーザーにエラー、特にセキュリティ上の理由からデータベースの詳細について詳細をあげないようにします。

これは基本的な答えではありませんが、外部サイトのエラーを報告したり処理したりする際のセキュリティを念頭に置いてください。これは外部のウェブサイトではないかもしれないので、ちょうどメモ。

3

このようなケース(失敗したクエリ)で例外を使用する場合の長所と短所は何ですか?単に

  • 賛否:アプリケーションは、優雅に失敗したクエリを処理必要であれば、それを記録し、上に移動することができます。
  • 短所:パフォーマンス。

私はあなたが間違った質問に集中していると思います。 であればいつでも例外を処理する必要がありますが、非常にまれにしか発生しません。問合せでエラーが発生する可能性がある場合は、エラー処理メカニズムではなく、問合せ自体に焦点を当てる必要があります。これにより

私は、エラー処理に起因するパフォーマンスのヒットを相殺するための手段として、任意のそれは窒息する可能性があり、クエリへの入力ではなく、クエリのスピード検証を向上させることを意味します。つまり、クエリが失敗する原因を突き止め、そのような状態が達成されていないことを確認します。

潜在的に漏れているボート(あなたの質問)の湖に向かう場合は、ウェットスーツ(エラー処理)の着用について心配する必要はありません。ボートは水密です。

関連する問題