0

これは、他の人のコードでスローされた例外の例外処理に関する一般的な質問です。

次の Codeigniter PHP ライブラリを使用しています: https://github.com/sepehr/ci-mongodb-base-model

これは、MongoDB のこのライブラリに依存しています: https://github.com/alexbilbie/codeigniter-mongodb-library/tree/v2

最初のライブラリで関数を呼び出すと、2 番目のライブラリから関数が呼び出されます。2 番目のライブラリが、自分のコードで処理できるようにしたい例外をスローすることがありますが、例外スロー呼び出しの周りに try-catch ステートメントがあります。例外を画面に出力します)。

私の質問は:

最初と 2 番目のライブラリのすべての関数を変更せずに (つまり、すべての try キャッチを削除する)、スローされた例外をどのように処理できますか?

編集

2 番目のライブラリの関数は次のように配置されます。

class SomeClass 
{
    function do_something()
    {
        ...
        try {
            ...
        }   
        catch {
            $this->_show_error('Update of data into MongoDB failed: ' . $exception->getMessage(), 500);
        }
    }

    function _show_error($error_message = '', $response_code = 500)
    {
        //Inbuilt Codeigniter helper function which can be disabled from printing the error to the screen 
        show_error($error_message, $response_code);
    }
}

エラーが出力されないようにすることはできますが (これはもちろんデバッグのためだけです)、エラーが発生したことを認識して処理する方法はまだありません。

4

1 に答える 1

1

(回答ではなくコメントのはずですが、少し長いです)

例外を画面に出力するだけです

本当に?本気ですか?

例外ではなくエラーをトリガーしないことを確認しましたか?運用サーバーとして構成されていないシステムでこれを実行していますか?

もしそうなら、私はこれを図書館として避けたいと思います。

(誰も馬鹿げたコードを書いて、多くの警告なしに公開するとは思えません)

于 2013-11-06T14:53:53.687 に答える