我一直在我的 PHP 代码中使用 try..catch 块,但我不确定我是否正确使用了它们。
例如,我的一些代码如下所示:
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 块中而完全没有问题?
可以嵌套 try/catch 块吗?谢谢!
编辑
return 语句主要仅用于演示目的,但我也使用 return incatch()
因为我正在向该方法发出 AJAX 请求,并且 Javascript 需要一个 JSON 对象,然后如果发生异常,我将返回一个空的 JSON 编码数组. 我只是认为在我的示例中放置特定代码不会增加任何价值。