ZGLHHH
V2EX  ›  问与答

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

  •  
  •   ZGLHHH · Jul 19, 2016 · 8555 views
    This topic created in 3764 days ago, the information mentioned may be changed or developed.

    比如:

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

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

    8 replies  •  2016-07-19 23:53:28 +08:00
    yangqi
    yangqi
    Jul 19, 2016
    2
    yangqi
    yangqi
    Jul 19, 2016
    3
    @ZGLHHH QueryException 是通用 exception, 应该放到全局的 exception handler 里面。不然你每执行一次 query 都要 catch 然后 handle 一遍不是要累死。。。
    ZGLHHH
    ZGLHHH
    OP
    Jul 19, 2016
    4
    @yangqi 那么请问应如何 全局 exception handler ?
    yangqi
    yangqi
    Jul 19, 2016
    5
    ZGLHHH
    ZGLHHH
    OP
    Jul 19, 2016
    6
    @yangqi 那么就是把 catch()括号里的这部分挂载到 App\Exceptions\Handler 吗?
    catch(\App\Exceptions\Handler $e){
    }
    yangqi
    yangqi
    Jul 19, 2016
    7
    @ZGLHHH 不是,官方文档写的很清楚
    ZGLHHH
    ZGLHHH
    OP
    Jul 19, 2016
    8
    @yangqi 这是个全局的异常处理器,但是我有几个函数需要另一种异常处理。
    难道要在 handler 里写判断是哪种异常决定返回什么吗?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   852 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 17:10 · PVG 01:10 · LAX 09:10 · JFK 12:10
    ♥ Do have faith in what you're doing.