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

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容