我一直在我的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块是否可行?
编辑
返回语句主要是为了演示目的,但我也在catch()
中使用返回语句,因为我正在对该方法进行AJAX请求,而Javascript期望一个JSON对象,如果发生异常,则返回一个空的JSON编码数组。我只是认为在示例中放置特定代码不会添加任何价值。
try{}
块中。那些需要执行的...则在catch(){}
结束后继续执行。 - CodeAngry