我应该在我丢弃的地方或在我捕获它的地方记录错误吗?

时间:2013-10-14 07:39:46

标签: php

我应该将错误记录在哪里,如下所示:

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;
}

2 个答案:

答案 0 :(得分:1)

作为几天Rami,使用描述性消息将错误/异常抛入方法本身,并将错误记录在catch块中是一个很好的解决方案。它将允许您只有一个日志记录指令,用于记录代码中可能发生的不同类型的异常。抛出异常时记录将增加日志记录消息并增加代码大小而不增加任何值,此外,如果在多个catch块中使用该函数,则无法跟踪哪个函数失败。

答案 1 :(得分:-1)

你应该在捕获时记录错误(在catch中),否则你的方法将被调用,即使它们是一个失败并且没有记录错误,除非你想记录它已经成功,那么你要么它现在的位置或者使用finally来记录它。