Laravel5 中应如何使用 try{}catch(){}捕获 Eloquent ORM 的异常?

2016-07-19 23:14:27 +08:00
 ZGLHHH

比如:

try{
  $user = \App\User::find(1);
  $user->email = $email;
  $user->save();
  return response()->json([ 'msg' => 'success']);
}catch( ??? ){
  return response()->json([ 'msg' => 'error','d' => 捕获到的异常信息 ]);
}

我应如何写才能捕获到异常?

7837 次点击
所在节点    问与答
8 条回复
ZGLHHH
2016-07-19 23:23:57 +08:00
yangqi
2016-07-19 23:31:17 +08:00
yangqi
2016-07-19 23:33:28 +08:00
@ZGLHHH QueryException 是通用 exception, 应该放到全局的 exception handler 里面。不然你每执行一次 query 都要 catch 然后 handle 一遍不是要累死。。。
ZGLHHH
2016-07-19 23:35:12 +08:00
@yangqi 那么请问应如何 全局 exception handler ?
yangqi
2016-07-19 23:42:42 +08:00
ZGLHHH
2016-07-19 23:44:23 +08:00
@yangqi 那么就是把 catch()括号里的这部分挂载到 App\Exceptions\Handler 吗?
catch(\App\Exceptions\Handler $e){
}
yangqi
2016-07-19 23:50:45 +08:00
@ZGLHHH 不是,官方文档写的很清楚
ZGLHHH
2016-07-19 23:53:28 +08:00
@yangqi 这是个全局的异常处理器,但是我有几个函数需要另一种异常处理。
难道要在 handler 里写判断是哪种异常决定返回什么吗?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/293592

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX