ZGLHHH
V2EX  ›  问与答

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

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