PHP try执行成功还会抛出异常
try{
Do something.
Db::commit();
return "success":
}cathe(\Exception $exception){
Db::rollback();
return "error":
}
在这边很多直接拿到的返回结果,不管你的操作是否是成功,都是返回是异常,走到了error内。
打印异常错误:
var_dump($e->getMessage());
结果是
""
没有任何信息。
这个时候需要注意的是异常try内的return 会被当成异常被抛出。两种解决方法。
第一:
将
catch (\Exception $exception)
改成(eg:使用TP6,具体路径请按照框架内改写)
catch (\think\Exception\DbException $exception)
第二:
把需要return的信息保存在变量,最后输出:
$_retData = [];
try{
Do something.
Db::commit();
$_retData['data'] = [];
$_retData['messages'] = "success";
}cathe(\Exception $exception){
Db::rollback();
return "error":
}
return $_retData;