最佳答案
我一直在 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 语句主要是为了演示的目的,但是我也使用了 catch()
中的 return,因为我对这个方法发出了一个 AJAX 请求,并且 Javascript 希望得到一个 JSON 对象,那么如果发生异常,我将返回一个空的 JSON 编码的数组。我只是认为在我的例子中放置特定的代码不会增加任何价值。