为什么php 框架的数据库操作类,在插入和更新失败的时候为什么不能直接抛出系统异常?????而要自己再进行判断返回结果?
php 是通过fpm来处理请求,一个fpm进程处理一条请求,在数据库增删改查执行遇到错误时,就说明这条请求失败了,为什么框架在处理DB类的时候不能直接抛出异常,这样在一个事务中执行多个增改查就无须判断每条语句的执行结果了。
举个例子
class A {
public function testA(){
try {
DB::beginTransaction();
$res = GoodsModel::on()->where('id', $id)->update();
if ($res) { // 如果update失败了 就直接停了,走catch语句不是更好
$retCode = OrderModel::on()->insert();
if (!$retCode) {
throw new Exception("处理失败");
}
}
DB::commit();
} catch (Exception $ex) {
DB::rollback();
throw $ex;
}
}
}
如果用异常方式,这样不是更好????还请大佬作出解答!
class A {
public function testA(){
try {
DB::beginTransaction();
GoodsModel::on()->where('id', $id)->update();
OrderModel::on()->insert();
DB::commit();
} catch (Exception $ex) {
DB::rollback();
throw $ex;
}
}
}
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: