当使用 mysql 的事务进行处理时, 经常会用到的一套处理逻辑
try{
...
$db->commit();
}cache(\Exception $e){
$db->rollback();
//抛出异常
throw new Exception ($e->getMessage(),$e->getCode);
}
此时抛出的异常在日志里只会追踪到当前抛出的行, 并不会追踪到 cache到的异常情况, 这样就没办法定位到问题所在 , 或者可以通过记录 $e->getFile() , $e->getLine()
最终找到异常源点, 但是有更好的办法, 如下
try{
...
$db->commit();
}cache(\Exception $e){
$db->rollback();
//抛出异常
//throw new Exception ($e->getMessage(),$e->getCode);
report($e)
response()->json('code'=>$e->getCode,'message'=>$e->getMessage())->send();
}
这样会把捕获的异常原样的抛出