Javascript 未调用nestjs异常筛选器
我正在尝试在我的NestJS应用程序中使用异常过滤器。我按照找到的说明设置我的全局Javascript 未调用nestjs异常筛选器,javascript,node.js,typescript,nestjs,Javascript,Node.js,Typescript,Nestjs,我正在尝试在我的NestJS应用程序中使用异常过滤器。我按照找到的说明设置我的全局例外过滤器,如下所示: @Catch() export class DemoExceptionFilter implements ExceptionFilter { private readonly logger: Logger; constructor() { this.logger = new Logger(DemoExceptionFilter .name);
例外过滤器
,如下所示:
@Catch()
export class DemoExceptionFilter implements ExceptionFilter
{
private readonly logger: Logger;
constructor()
{
this.logger = new Logger(DemoExceptionFilter .name);
}
public catch(exception: unknown, host: ArgumentsHost): void
{
this.logger.log(exception);
}
}
在我的AppModule中,我以以下方式注册了DemoExceptionFilter
:
@Module({
...
providers: [
...
{
provide: APP_FILTER,
useClass: DemoExceptionFilter
}
...
]
})
当我在代码中的某个地方抛出异常时,该异常由控制台中的NestJS记录,但不会调用myDemoExceptionFilter
我也试过了
app.useGlobalFilters(new DemoExceptionFilter());
在main.ts
中,也不起作用
我遗漏了什么?在文档中,它说明了全局异常过滤器将应用于何处: 全局作用域筛选器用于整个应用程序,用于每个控制器和每个路由处理程序
它们不用于应用程序启动。因此,如果要测试异常过滤器,请在控制器的route handler方法中抛出一个错误,并调用该路由。在服务构造函数中抛出异常的位置。