-
-
Notifications
You must be signed in to change notification settings - Fork 309
Open
Description
你好,从你的开源代码中学到很多,非常感谢!
数据流异常拦截器按照 README 的描述是:当控制器所需的 Promise service 发生错误时,错误将在此被捕获
有两个个疑问:
- 该拦截器只是收集了错误信息并抛出异常(
CustomException),仅仅是这样的需求的话,为什么不直接通过过滤器(HttpExceptionFilter)捕获错误呢?因为拦截器抛出的异常(CustomException)最终依然是交给过滤器(HttpExceptionFilter)来处理,而过滤器的第一个参数exception是有完整的错误信息的 - 该拦截器中抛出异常的代码是
throwError(new CustomException({ message, error }, statusCode));,这样的写法会导致在终端中打印出 抛出异常的无效堆栈信息
,并没有记录实质的请求相关的内容
我在生产环境中并没有关闭 NestJS 的 Logger,所以我在 HttpExceptionFilter 中多加了些打印日志
Logger.error(
`${request.method} ${request.url}`,
JSON.stringify(errorResponse),
'HttpExceptionFilter',
);Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels
