我希望得到一些关于抛出异常并捕获它们的最佳实践的建议。我正在使用第三方库连接到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");
}
答案 0 :(得分:3)
如果您在主脚本中捕获异常,则不需要在函数myFunction
中捕获它,直到您需要在函数中进行某些处理。
如果控件中的任何一个孩子或孩子的孩子出现异常,控件将返回主脚本中捕获的异常。