17_异常拦截器

简介: 17_异常拦截器

异常拦截器是一个实现了ExceptionFilter接口的类,该类有一个接收两个参数的catch方法,可以通过该拦截器在请求接口失败时返回一些错误信息。本节我们演示的同样是全局异常拦截器

  1. 在common文件夹下新建一个filter.ts文件
import { ArgumentsHost, Catch, ExceptionFilter, HttpException } from '@nestjs/common';
import { Request, Response } from 'express';
// 和全局拦截器不一样,这里我们使用@Catch装饰器并且传入HttpException类
@Catch(HttpException)
export class HttpFilter implements ExceptionFilter {
  catch(exception: HttpException, host: ArgumentsHost) {
    // 获取http错误信息
    const ctx = host.switchToHttp();
    // 获取请求信息
    const request = ctx.getRequest<Request>();
    // 获取响应信息
    const response = ctx.getResponse<Response>();
    // 获取请求返回状态信息
    const status = exception.getStatus();
    // 返回一些内容
    response.status(status).json({
      success: false,
      time: new Date(),
      data: exception.message,
      status,
      path:request.url
    });
  }
}
  1. 在main.ts里注册
import { HttpFilter } from './common/filter';
app.useGlobalFilters(new HttpFilter());
目录
相关文章
|
2月前
SpringMVC之拦截器和异常处理器
【1月更文挑战第20天】SpringMVC之拦截器和异常处理器
54 0
|
8月前
|
前端开发 JavaScript
请求拦截器的使用
请求拦截器的使用
65 0
|
2月前
SpringMVC拦截器的介绍,拦截器的基本实现,拦截器链配置
SpringMVC拦截器的介绍,拦截器的基本实现,拦截器链配置
36 2
|
2月前
|
前端开发 小程序
异常处理器与拦截器 深入探究 --拦截器状态码无法被识别
异常处理器与拦截器 深入探究 --拦截器状态码无法被识别
|
2月前
过滤器&拦截器
过滤器&拦截器
37 0
过滤器&拦截器
|
2月前
Feign的异常过滤器
Feign的异常过滤器
|
2月前
SpringMVC-拦截器参数及拦截器链配置
SpringMVC-拦截器参数及拦截器链配置
40 0
|
7月前
|
JSON 前端开发 Java
SpringMVC中异常处理与ControllerAdvice捕捉全局异常
SpringMVC中异常处理与ControllerAdvice捕捉全局异常
71 0
|
9月前
|
Java 容器
过滤器和拦截器的区别
Filter 也称为过滤器,基于Servlet实现,拦截器(Interceptor)是一种动态拦截方法调用的机制,在SpringMVC中动态拦截控制器方法的执行,基于AOP思想,对方法进行增强。和servlet 中的过滤器类似,都是对用户请求进行处理。
56 0
|
11月前
|
JSON 前端开发 数据格式
2021-08-13service层校验异常处理器,拦截器,json转换器
2021-08-13service层校验异常处理器,拦截器,json转换器
45 0