【问题标题】:How can I handle a custom HTTP exception?如何处理自定义 HTTP 异常?
【发布时间】:2021-05-14 23:32:15
【问题描述】:

我创建了一个名为无效余额的异常,我正在使用如下。我的输出结果状态是 500。如何将这个状态更改为 400?

try {
    $balance = Wallet::findOrFail()->docs()
        ->sum('amount');

    if ($balance == 0) {
        throw new InvalidBalance();
    }

} catch (QueryException $e) {
    $message = Str::contains($e->getMessage(), 'Deadlock') ? 
        'Server is busy' : $e->getMessage();
    throw new HttpException(400, $message);
} catch (\Exception $e) {
    throw $e;
}

【问题讨论】:

  • 显示你的 InvalidException 类并告诉你把那个文件放在哪里。
  • 让您的InvalidBalance 异常扩展HttpException,并将代码400 发送到父构造函数

标签: laravel api lumen


【解决方案1】:

您可以使用abort 助手。

if ($balance === 0) 
{
    abort(400, 'Bad Request.');
}

或者在 InvalidBalance 类中执行中止。

【讨论】:

    【解决方案2】:

    您可以使用response() 方法并将http 状态码作为第二个参数传递,如laravel helpers functions 中一样

     return response()->json(['message'=>'your message'], 400);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-08-09
      • 1970-01-01
      • 2011-06-11
      • 2015-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-15
      相关资源
      最近更新 更多