1

次のようにスローする場所でエラーをログに記録する必要があります。

try {
    addOne();
} catch (Exception $e) {

}

function addOne($number) {
    if (empty($number)) {
        Log::instance()->add(Log::ERROR, $e->getMessage());
        throw Exception('The incoming number is empty');
    }
    return $number+1;
}

またはどこでこのようにキャッチしますか?

try {
    addOne();
} catch (Exception $e) {
    Log::instance()->add(Log::ERROR, $e->getMessage());
}

function addOne($number) {
    if (empty($number)) {
    throw Exception('The incoming number is empty');
    }
    return $number+1;
}
4

2 に答える 2

1

Rami のように、エラー/例外をメソッド自体の中にスローし、説明的なメッセージを付けて、catch ブロック内にエラーをログに記録することは良い解決策です。コードで発生する可能性のあるさまざまな種類の例外をログに記録するためのログ命令を 1 つだけ持つことができます。例外をスローしたときにログを記録すると、ログ メッセージが倍増し、付加価値なしでコード サイズが増加します。さらに、複数の catch ブロックで関数を使用すると、どのブロックで失敗したかを追跡できません。

于 2013-10-14T07:47:27.630 に答える