由于管理后台几乎所有的请求都是通过 ajax 请求的,默认的异常直接抛出,会导致 ajax 返回的 json 个数错误,于是对框架抛出的异常做了自定义处理,将 ajax 请求时的异常以 json 格式抛出,其他异常继承与异常处理方法
```
use think\exception\Handle;
use think\exception\HttpException;
use think\Request;
class TpException extends Handle
{
public function render(\Exception $e)
{
if ($e instanceof HttpException) {
$statusCode = $e->getStatusCode();
http_response_code($statusCode);
}
//可以在此交由系统处理
if (Request::instance()->isAjax()) {
$error_code = $this->getCode($e) ?: 1;
return ajax_return_adv_error($this->getMessage($e), $error_code);
}
return parent::render($e);
}
}
```
如果需要请修改 `extend\TpException.php` 文件
>[info] 以后在使用时无论是否有 ajax 请求,都可以轻松抛出一个异常,都不会导致没有正确的 json 格式数据返回
- 概要
- 开始使用
- 写在前面
- 目录结构
- 模板主题支持
- 前置方法before支持
- 数据返回
- 异常接管
- Rbac 权限管理
- 开始使用
- 用户管理
- 分组管理
- 节点管理
- 角色管理
- 使用流程
- 其他
- 代码自动生成 v1.2
- 示例一 - 一级控制器
- 示例二 - 多级控制器
- 示例三 - 从数据表生成
- 示例四 - 指定生成的文件
- 示例五 - 命令行模式
- 示例六 - 模拟命令行模式
- 代码自动生成
- 示例一 - 一级控制器
- 示例二 - 多级控制器
- 控制器
- 公共控制器
- traits 多继承 Controller
- 公开不授权控制器
- 其他控制器
- 标签扩展
- 模板
- 网站操作日志
- 节点图
- 行为驱动
- 其他后端方法
- Excel一键导出
- Excel一键导入
- 文件下载
- 邮件发送
- 七牛文件上传
- id加密
- 前端
- ajax请求
- 表单校验
- 丰富弹层
- 异步操作
- 表格溢出
- 随机字符串
- 自动面包屑导航
- 动态加载文件
- 文件上传
- Tab 切换
- 图片预览
- 二维码生成
- 日历组件
- 升级指导
- 更新日志
- FAQ