V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
ZGLHHH
V2EX  ›  问与答

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

  •  
  •   ZGLHHH · 2016-07-19 23:14:27 +08:00 · 7834 次点击
    这是一个创建于 2853 天前的主题,其中的信息可能已经有所发展或是发生改变。

    比如:

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

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

    8 条回复    2016-07-19 23:53:28 +08:00
    yangqi
        2
    yangqi  
       2016-07-19 23:31:17 +08:00
    yangqi
        3
    yangqi  
       2016-07-19 23:33:28 +08:00
    @ZGLHHH QueryException 是通用 exception, 应该放到全局的 exception handler 里面。不然你每执行一次 query 都要 catch 然后 handle 一遍不是要累死。。。
    ZGLHHH
        4
    ZGLHHH  
    OP
       2016-07-19 23:35:12 +08:00
    @yangqi 那么请问应如何 全局 exception handler ?
    yangqi
        5
    yangqi  
       2016-07-19 23:42:42 +08:00
    ZGLHHH
        6
    ZGLHHH  
    OP
       2016-07-19 23:44:23 +08:00
    @yangqi 那么就是把 catch()括号里的这部分挂载到 App\Exceptions\Handler 吗?
    catch(\App\Exceptions\Handler $e){
    }
    yangqi
        7
    yangqi  
       2016-07-19 23:50:45 +08:00
    @ZGLHHH 不是,官方文档写的很清楚
    ZGLHHH
        8
    ZGLHHH  
    OP
       2016-07-19 23:53:28 +08:00
    @yangqi 这是个全局的异常处理器,但是我有几个函数需要另一种异常处理。
    难道要在 handler 里写判断是哪种异常决定返回什么吗?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   925 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 22:01 · PVG 06:01 · LAX 15:01 · JFK 18:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.