Laravel统一错误处理为JSON的方法介绍
时间:2022-01-07
来源:互联网
标签:
在手机上看
手机扫描阅读
Laravel中的AppExceptionsHandler 类负责记录应用程序触发的所有异常,这在我们开发过程中十分方便,总是try...catch使代码太过繁琐且可读性大大降低,那么怎么使用它处理异常为json呢?
方法如下:
我们可以新建一个class,用来处理异常返回。
<?php
/**
* Author: sai
* Date: 2020/1/15
* Time: 14:31
*/
namespace App\Exceptions;
class ApiException extends \Exception
{
const ERROR_CODE = 1001;
const ERROR_MSG = 'ApiException';
private $data = [];
/**
* BusinessException constructor.
*
* @param string $message
* @param string $code
* @param array $data
*/
public function __construct(string $message, string $code, $data = [])
{
$this->code = $code ? : self::ERROR_CODE;
$this->message = $message ? : self::ERROR_MSG;
$this->data = $data;
}
/**
* @return array
*/
public function getData()
{
return $this->data;
}
/**
* 异常输出
*/
public function render($request)
{
return response()->json([
'data' => $this->getData(),
'code' => $this->getCode(),
'messgae' => $this->getMessage(),
], 200);
}
}然后我们在Handler加入,加入$dontReport,便不会使用自带的错误处理,而使用自定义的处理。
<?php
namespace App\Exceptions;
use Exception;
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
class Handler extends ExceptionHandler
{
/**
* 一些不需管或不需要抛出的异常
*/
protected $dontReport = [
ApiException::class,
];
...
}我们测试一下:
<?php
namespace App\Http\Controllers;
use App\Exceptions\ApiException;
use Illuminate\Http\Request;
class HomeController extends Controller
{
public function index(Request $request)
{
throw new ApiException('error', 10001, ['oh' => 'no']);
return 1;
}
}查看输出:

测试ok,我们可以愉快的使用啦。当然,其他形式的错误输出可以自行扩展。
总结
到此这篇关于Laravel统一错误处理为JSON的文章就介绍到这了,更多相关Laravel统一错误处理为JSON内容请搜索PHP爱好者以前的文章或继续浏览下面的相关文章希望大家以后多多支持PHP爱好者!
相关阅读 更多
-
核芯显卡是什么意思?核芯显卡和独立显卡有什么区别? 时间:2025-12-19 -
什么是算术逻辑单元ALU 算术逻辑单元的功能和结构 时间:2025-12-19 -
什么是视觉识别色差检测 视觉识别色差检测的原理、技术特点、应用及常用工具 时间:2025-12-19 -
什么是流量控制 流量控制和拥塞控制的区别 时间:2025-12-19 -
GPU虚拟化是什么意思 GPU虚拟化有哪三种方法 时间:2025-12-19 -
独显是什么意思 独显和集显的区别 时间:2025-12-19
今日更新
-
mc网页版手机入口-我的世界网页版手机直进
阅读:18
-
喵趣漫画App官方最新版本下载-喵趣漫画App正版安装包下载入口
阅读:18
-
币安理财产品如何精准匹配用户风险偏好
阅读:18
-
欧洲人的梗是什么梗?揭秘欧式幽默背后的文化差异与搞笑名场面!
阅读:18
-
歪歪漫画首页登陆入口-歪歪漫画官网登录页面
阅读:18
-
欧洲人非洲人是什么梗?揭秘欧非血统爆笑网络梗,看完秒懂!
阅读:18
-
币安系统故障致交易延误 官方补偿方案详解
阅读:18
-
一人之下免费漫画全集高清入口 | 正版全章节,剧情连贯追更流畅
阅读:18
-
币安界面优化显著提升页面加载速度 用户体验升级
阅读:18
-
豆包AI免费在线使用-豆包AI官网网页版一键直达
阅读:18










