我在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,catch()
因为我正在对该方法发出AJAX请求,而Javascript期望使用JSON对象,那么如果发生异常,我将返回一个空的JSON编码数组。我只是认为它不会为在示例中添加特定代码带来任何价值。
FOREIGN KEYS
吗?表B中的交易是否取决于表A中的交易?这就是您需要问自己决定是否可以将它们分组的内容。