0

私は奇妙な状況にあります。

クラスインスタンスがメソッドに渡され、クラスインスタンスが設定されていない場合、サーバーはエラーをキャッチする代わりに500エラーをスローします。

これは99%の時間のテスト中に発生しますが、ユーザーがその1%の間それを決して見ないようにしたいです

ところで:私はすでに自分.htaccessapache2ファイルをチェックしました<=それらは正しいです

これが発生するたびにエラーphp.iniを回避するために、ファイルなどで何を変更する必要がありますか?500

ここにいくつかのサンプルコードがあります:

<?php

function querysomething ($connection_to_mysql, $query) {
  try {
    $query = $connection_to_mysql->prepare("SELECT * FROM table WHERE name=?");
    $query->bind_param("s", $name);
    $execute = $query->execute();
    //etc...
    if (!$execute) {
      throw new Exception ("some error");
    }
  } catch (Exception $e) {
    //some error handling
  }
}

?>

オブジェクトがインスタンス化されていない場合、サーバーはエラー$connection_to_mysqlをスローします500

$connection_to_mysqlクエリの前に毎回実際に存在するかどうかを確認する必要がありますか?

4

2 に答える 2

2

set_error_handler/を使用set_exception_handlerして、phpの致命的なエラー固有のページを表示します。

于 2012-08-08T16:52:18.173 に答える
0

キャッチについてさらに読んだ後Fatal Errors、私はこれを理解することができます:PHPの致命的なエラーをキャッチするにはどうすればよいですか?

set_error_handler&を使用する代わりに、set_exception_handlerすべてのエラーをキャッチしてアフターワードを処理するには、を使用しますregister_shutdown_functions

これにより、ページ(例:500.phpなど)にリダイレクトし、エラーをログに記録し、必要に応じて電子メールを送信できます。

于 2012-08-08T16:59:54.330 に答える