函数和主脚本中的try-catch?

时间:2017-12-03 18:21:59

标签: php exception-handling

我希望得到一些关于抛出异常并捕获它们的最佳实践的建议。我正在使用第三方库连接到Amazon mws API。这个库已经抛出了我在函数中捕获的异常。

我的问题是,此函数是否应该使用try-catch将异常传递到主脚本? e.g。

function myFunction() {
    try {
        $obj = new Object();
        $obj->makeCall();
        return $obj->getData();
    } catch (Exception $ex) {
        throw new Exception('There was a problem with the library '.$ex->getMessage());
    }
}

然后在主脚本中;

try {
    //make the call
    $response = myFunction();
} catch (Exception $e){
    //log error
    $logger->error("log error");
}

1 个答案:

答案 0 :(得分:3)

如果您在主脚本中捕获异常,则不需要在函数myFunction中捕获它,直到您需要在函数中进行某些处理。

如果控件中的任何一个孩子或孩子的孩子出现异常,控件将返回主脚本中捕获的异常。