如何有效地使用尝试...在 PHP 中捕获块
2022-08-30 08:21:22
我一直在使用尝试..在我的PHP代码中捕获块,但我不确定我是否正确使用它们。
例如,我的一些代码看起来像这样:
try {
$tableAresults = $dbHandler->doSomethingWithTableA();
$tableBresults = $dbHandler->doSomethingElseWithTableB();
} catch (Exception $e) {
return $e;
}
因此,我将多个数据库操作分组到同一个 try/catch 块中,因为如果任何事务中发生任何异常,我将能够处理它。
我这样做是因为我认为它比以下方法更具可读性和效率:
try {
$tableAresults = $dbHandler->doSomethingWithTableA();
} catch (Exception $e) {
return $e;
}
try {
$tableBresults = $dbHandler->doSomethingWithTableB();
} catch (Exception $e) {
return $e;
}
虽然,我不确定我正在做的事情是一种好的做法,还是只是一种懒惰的方法来捕捉异常。
我的假设是,只有当异常需要特殊处理时,它应该有自己的 try/catch 块,否则将它们分组到相同的 try/catch 中应该是可以的。
所以我的问题是:
对每个数据库事务使用 try/catch 块有什么好处吗?或者我仍然可以将多个数据库事务分组到同一个try/catch块中,而完全没有问题?
可以嵌套尝试/捕获块吗?谢谢!
编辑
return 语句主要用于演示目的,但我也使用 returns,因为我正在向该方法发出 AJAX 请求,并且 Javascript 需要一个 JSON 对象,然后如果发生异常,我将返回一个空的 JSON 编码数组。我只是认为在我的示例中放置特定代码不会增加任何价值。catch()