ExceptionFilter is the generic interface (ExceptionFilter<T>) that all NestJS exception filters must implement. It defines catch(exception: T, host: ArgumentsHost), where T is the exception type.

Filters are bound with @Catch() to specific exception types (e.g., @Catch(HttpException)) or catch-all (@Catch()). They use host.switchToHttp() from ArgumentsHost to access the underlying Response/Request objects for custom error responses.

Filters can be method-scoped, controller-scoped (@UseFilters()), or global-scoped (app.useGlobalFilters() or via APP_FILTER token). Prefer passing classes (not instances) to enable DI and instance reuse.