Bird
Raised Fist0
NestJSframework~5 mins

Custom exception classes in NestJS - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a custom exception class in NestJS?
A custom exception class in NestJS is a user-defined class that extends the built-in HttpException class to create specific error types with custom messages and HTTP status codes.
Click to reveal answer
beginner
How do you create a custom exception class in NestJS?
You create a custom exception class by extending the HttpException class and calling its constructor with a message and an HTTP status code.
Click to reveal answer
intermediate
Why use custom exception classes instead of throwing generic errors?
Custom exception classes provide clear, consistent error responses with specific HTTP status codes and messages, making error handling and debugging easier and improving API clarity.
Click to reveal answer
beginner
Example: What does this custom exception class do?
class ForbiddenException extends HttpException {
  constructor() {
    super('Access denied', HttpStatus.FORBIDDEN);
  }
}
This class creates a custom exception named ForbiddenException that returns a 403 Forbidden HTTP status with the message 'Access denied' when thrown.
Click to reveal answer
intermediate
How does NestJS handle custom exceptions when thrown in a controller?
NestJS catches custom exceptions thrown in controllers and automatically sends an HTTP response with the status code and message defined in the exception class.
Click to reveal answer
Which class should you extend to create a custom exception in NestJS?
AError
BHttpException
CExceptionFilter
DController
What parameters does the HttpException constructor expect?
AOnly an HTTP status code
BOnly a message
CA message and an HTTP status code
DA request and response object
What HTTP status code does HttpStatus.FORBIDDEN represent?
A401
B500
C404
D403
Why is it better to use custom exceptions instead of generic errors in NestJS?
AThey provide specific HTTP status codes and messages
BThey run faster
CThey require less code
DThey automatically fix bugs
What happens when a custom exception is thrown inside a NestJS controller?
ANestJS sends an HTTP response with the exception's status and message
BThe server crashes
CNothing happens
DThe exception is ignored
Explain how to create and use a custom exception class in NestJS.
Think about extending the built-in error class and how NestJS handles thrown exceptions.
You got /4 concepts.
    Why are custom exception classes useful in building APIs with NestJS?
    Consider how clients and developers benefit from clear and consistent error responses.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of creating a custom exception class in NestJS?
      easy
      A. To create new HTTP methods like GET or POST
      B. To replace the built-in JavaScript Error object globally
      C. To automatically log errors to a database
      D. To define specific error messages and HTTP status codes for your app

      Solution

      1. Step 1: Understand the role of custom exceptions

        Custom exceptions in NestJS help you send clear, specific error messages with HTTP status codes.
      2. Step 2: Compare with other options

        Options B, C, and D describe unrelated features not handled by custom exceptions.
      3. Final Answer:

        To define specific error messages and HTTP status codes for your app -> Option D
      4. Quick Check:

        Custom exceptions = specific messages + status [OK]
      Hint: Custom exceptions customize error messages and HTTP codes [OK]
      Common Mistakes:
      • Thinking custom exceptions replace JavaScript Error globally
      • Assuming they log errors automatically
      • Confusing exceptions with HTTP methods
      2. Which of the following is the correct way to define a custom exception class in NestJS?
      easy
      A. const MyException = () => { return 'Error'; }
      B. class MyException extends HttpException { constructor() { super('Error', 400); } }
      C. class MyException { constructor() { this.message = 'Error'; } }
      D. function MyException() { throw new Error('Error'); }

      Solution

      1. Step 1: Check syntax for custom exception

        In NestJS, custom exceptions extend HttpException and call super with message and status.
      2. Step 2: Validate options

        class MyException extends HttpException { constructor() { super('Error', 400); } } correctly extends HttpException and calls super with message and status code. Others do not follow NestJS pattern.
      3. Final Answer:

        class MyException extends HttpException { constructor() { super('Error', 400); } } -> Option B
      4. Quick Check:

        Extend HttpException + super(message, status) [OK]
      Hint: Custom exceptions must extend HttpException and call super() [OK]
      Common Mistakes:
      • Not extending HttpException
      • Not calling super() with message and status
      • Using plain functions instead of classes
      3. Given this custom exception class, what will be the HTTP status code when it is thrown?
      class ForbiddenException extends HttpException {
        constructor() {
          super('Access denied', 403);
        }
      }
      medium
      A. 200
      B. 500
      C. 403
      D. 404

      Solution

      1. Step 1: Read the constructor call

        The constructor calls super with message 'Access denied' and status 403.
      2. Step 2: Understand HttpException behavior

        The second argument to super is the HTTP status code returned when exception is thrown.
      3. Final Answer:

        403 -> Option C
      4. Quick Check:

        Status code = 403 from super() call [OK]
      Hint: Status code is second argument in super() call [OK]
      Common Mistakes:
      • Confusing message with status code
      • Assuming default 500 status
      • Ignoring the status argument in super()
      4. What is wrong with this custom exception class?
      class BadRequestException extends HttpException {
        constructor() {
          super('Bad request');
        }
      }
      medium
      A. Missing HTTP status code in super() call
      B. Class should not extend HttpException
      C. Constructor should not call super()
      D. Message should be a number, not a string

      Solution

      1. Step 1: Check super() arguments

        The super() call only has a message string, but HttpException requires message and status code.
      2. Step 2: Understand HttpException constructor

        HttpException constructor needs both message and HTTP status code to work correctly.
      3. Final Answer:

        Missing HTTP status code in super() call -> Option A
      4. Quick Check:

        super() needs message + status [OK]
      Hint: Always pass status code as second argument to super() [OK]
      Common Mistakes:
      • Forgetting the status code argument
      • Thinking message alone is enough
      • Misunderstanding HttpException constructor
      5. You want to create a custom exception that returns a JSON response with a custom error code and message. Which approach correctly extends HttpException to achieve this?
      class CustomErrorException extends HttpException {
        constructor() {
          super(
            { errorCode: 1234, message: 'Custom error' },
            400
          );
        }
      }
      hard
      A. This code correctly sends a JSON object with errorCode and message and HTTP 400 status
      B. HttpException cannot send JSON objects, only strings
      C. The status code should be inside the JSON object, not a separate argument
      D. Custom exceptions must not use objects in super(), only strings

      Solution

      1. Step 1: Review HttpException constructor usage

        HttpException accepts either a string or an object as the first argument for the response body.
      2. Step 2: Confirm JSON response with status code

        Passing an object with errorCode and message as first argument and 400 as second is valid and sends JSON response with status 400.
      3. Final Answer:

        This code correctly sends a JSON object with errorCode and message and HTTP 400 status -> Option A
      4. Quick Check:

        HttpException supports object response + status [OK]
      Hint: Pass object as first argument, status code as second in super() [OK]
      Common Mistakes:
      • Thinking only strings allowed in super()
      • Putting status code inside JSON object
      • Believing custom exceptions can't send JSON
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard