Laravel 异常抛出的问题

当使用 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();
}

这样会把捕获的异常原样的抛出

你可能感兴趣的:(Laravel 异常抛出的问题)