我们都使用DB::transaction()
多个插入查询。这样做时,应该将try...catch
其放置在内部还是包裹起来?甚至有必要try...catch
在交易出现问题时自动将交易失败的情况包括在内吗?
try...catch
包装交易的样本:
// try...catch
try {
// Transaction
$exception = DB::transaction(function() {
// Do your SQL here
});
if(is_null($exception)) {
return true;
} else {
throw new Exception;
}
}
catch(Exception $e) {
return false;
}
相反,DB::transaction()
包装try ... catch:
// Transaction
$exception = DB::transaction(function() {
// try...catch
try {
// Do your SQL here
}
catch(Exception $e) {
return $e;
}
});
return is_null($exception) ? true : false;
或只是一笔没有交易的交易...赶上
// Transaction only
$exception = DB::transaction(function() {
// Do your SQL here
});
return is_null($exception) ? true : false;