将异常传播到下一个捕获

时间:2015-02-03 08:02:02

标签: php exception

我有这段代码:

<?php
[...]

// Authentication error
catch(AuthException $e)
{
    // TODO: Save fault to auth into DB

    // Propagate exception
    throw $e;
}

// Common exception
catch(Exception $e)
{
    // TODO: Log error here

    $response = JsonResponse(array("error" => $e->getMessage()));
    $response->send();
}

我希望能够抛出AuthException和Exception,并希望确保AuthException的catch将错误存储到db中,并且因为常见的Exception将作为错误返回。 但现在我有错误,我已经解除了异常。 或者我可能需要在AuthException的构造函数中记录错误?

1 个答案:

答案 0 :(得分:1)

你不需要捕获每个异常,我猜你想做这样的事情吗?

try {
      //...
} catch(Exception $e){

  if($e instanceof AuthException ) {
    // Log error here
  }

    $response = JsonResponse(array("error" => $e->getMessage()));
    $response->send();
}