0
0
NestJSframework~20 mins

Global exception filters in NestJS - Practice Problems & Coding Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
Global Exception Filter Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
component_behavior
intermediate
2:00remaining
What is the output when a global exception filter catches an HTTP exception?
Consider a NestJS app with a global exception filter that catches all exceptions and returns a JSON with { status: 'error', message: error.message }. What will the client receive if a controller throws new HttpException('Not Found', 404)?
NestJS
import { ExceptionFilter, Catch, ArgumentsHost, HttpException } from '@nestjs/common';

@Catch()
export class GlobalFilter implements ExceptionFilter {
  catch(exception: any, host: ArgumentsHost) {
    const ctx = host.switchToHttp();
    const response = ctx.getResponse();
    const message = exception.message || 'Unknown error';
    response.status(500).json({ status: 'error', message });
  }
}

// Controller throws: throw new HttpException('Not Found', 404);
A{"status":"error","message":"Unknown error"}
B{"status":"error","message":"Not Found"}
CHTTP 404 with default NestJS error page
DHTTP 500 with empty body
Attempts:
2 left
💡 Hint
The filter catches all exceptions and uses exception.message for the response message.
lifecycle
intermediate
1:30remaining
When is a global exception filter executed in NestJS request lifecycle?
In NestJS, at what point does a global exception filter run during handling a request?
AOnly after all middleware have completed
BBefore the controller method is called
CAfter the controller method throws an exception but before the response is sent
DOnly after the response is sent to the client
Attempts:
2 left
💡 Hint
Exception filters catch errors thrown during controller execution.
🔧 Debug
advanced
2:30remaining
Why does this global exception filter not catch exceptions?
Given this global exception filter code, why might it fail to catch exceptions thrown in controllers?
import { ExceptionFilter, Catch, ArgumentsHost } from '@nestjs/common';

@Catch(Error)
export class MyFilter implements ExceptionFilter {
  catch(exception: any, host: ArgumentsHost) {
    const ctx = host.switchToHttp();
    const response = ctx.getResponse();
    response.status(500).json({ message: 'Error caught' });
  }
}
AThe filter is not registered globally in the main.ts file
BThe filter must use @Catch() without arguments to catch all exceptions globally
CThe filter is missing the @Injectable() decorator
DThe filter only catches exceptions of type Error, but NestJS throws HttpException which is not a subclass of Error
Attempts:
2 left
💡 Hint
Check how global filters are applied in NestJS.
📝 Syntax
advanced
2:30remaining
Which option correctly implements a global exception filter that logs and rethrows exceptions?
Choose the correct global exception filter code that logs the exception message and then rethrows it to let NestJS handle it.
A
import { ExceptionFilter, Catch, ArgumentsHost } from '@nestjs/common';

@Catch()
export class LogFilter implements ExceptionFilter {
  catch(exception: any, host: ArgumentsHost) {
    console.log(exception.message);
    throw exception;
  }
}
B
import { ExceptionFilter, Catch, ArgumentsHost } from '@nestjs/common';

@Catch()
export class LogFilter implements ExceptionFilter {
  catch(exception: any, host: ArgumentsHost) {
    console.log(exception.message);
  }
}
C
import { ExceptionFilter, Catch, ArgumentsHost } from '@nestjs/common';

@Catch()
export class LogFilter implements ExceptionFilter {
  catch(exception: any, host: ArgumentsHost) {
    console.log(exception.message);
    return exception;
  }
}
D
import { ExceptionFilter, Catch, ArgumentsHost } from '@nestjs/common';

@Catch()
export class LogFilter implements ExceptionFilter {
  catch(exception: any, host: ArgumentsHost) {
    console.log(exception.message);
    host.next();
  }
}
Attempts:
2 left
💡 Hint
To rethrow an exception, use throw inside catch method.
🧠 Conceptual
expert
2:00remaining
What is the main benefit of using a global exception filter in NestJS?
Why would a developer choose to implement a global exception filter instead of handling exceptions individually in each controller?
ATo improve performance by skipping error handling in controllers
BTo prevent exceptions from being logged anywhere
CTo automatically retry failed requests without additional code
DTo centralize error handling logic and provide consistent error responses across the entire application
Attempts:
2 left
💡 Hint
Think about code reuse and consistency in user experience.