Practice
1. What is the main purpose of logging exceptions in a NestJS application?
easy
Solution
Step 1: Understand the role of exception logging
Logging exceptions records error details like messages and stack traces to help developers find and fix bugs.Step 2: Identify the correct purpose
Among the options, only tracking and fixing errors matches the purpose of logging exceptions.Final Answer:
To track and fix errors by recording error details -> Option CQuick Check:
Logging exceptions = track and fix errors [OK]
Hint: Logging exceptions helps find bugs by saving error info [OK]
Common Mistakes:
- Thinking logging improves app speed
- Confusing logging with security features
- Believing logging increases memory unnecessarily
2. Which of the following is the correct way to log an error with NestJS Logger inside a catch block?
easy
Solution
Step 1: Recall Logger.error method signature
Logger.error takes three arguments: message, stack trace, and optional context string.Step 2: Match the correct syntax
Logger.error(error.message, error.stack, 'MyContext') correctly uses Logger.error with message, stack, and context. Others use wrong methods or missing parameters.Final Answer:
Logger.error(error.message, error.stack, 'MyContext') -> Option AQuick Check:
Logger.error(message, stack, context) = Logger.error(error.message, error.stack, 'MyContext') [OK]
Hint: Use Logger.error with message, stack, and context [OK]
Common Mistakes:
- Using Logger.log or Logger.warn instead of Logger.error
- Omitting the stack trace argument
- Passing arguments in wrong order
3. Given this NestJS code snippet inside a service method:
What will be logged?
try {
throw new Error('Failed operation');
} catch (error) {
Logger.error(error.message, error.stack, 'MyService');
}What will be logged?
medium
Solution
Step 1: Understand the try-catch behavior
The error is thrown and immediately caught by catch block, so execution continues inside catch.Step 2: Analyze Logger.error call
Logger.error logs an error message with stack trace and context 'MyService'. This creates an error-level log entry.Final Answer:
An error log with message 'Failed operation' and stack trace under 'MyService' context -> Option DQuick Check:
Throw caught and logged as error with message and stack [OK]
Hint: Catch errors to log message and stack with Logger.error [OK]
Common Mistakes:
- Thinking throw stops all logging
- Confusing log levels (warn vs error)
- Ignoring the context parameter
4. Identify the error in this NestJS exception logging code:
try {
// some code
} catch (error) {
Logger.error(error.stack, error.message, 'AppModule');
}medium
Solution
Step 1: Check Logger.error argument order
Logger.error expects (message, stack, context). Here, stack and message are swapped.Step 2: Confirm correct usage
Swapping arguments causes wrong log output or errors. Correct order is message first, then stack trace.Final Answer:
Arguments to Logger.error are reversed; message should come first -> Option AQuick Check:
Logger.error(message, stack, context) order matters [OK]
Hint: Logger.error needs message first, then stack, then context [OK]
Common Mistakes:
- Swapping message and stack arguments
- Thinking Logger.error is async needing await
- Assuming Logger.error takes only one argument
5. You want to log exceptions in a NestJS global exception filter to capture all errors with context 'GlobalFilter'. Which code snippet correctly implements this?
hard
Solution
Step 1: Understand global exception filter logging
Global filters catch all exceptions; logging must use Logger.error with message, stack, and context.Step 2: Evaluate each option
catch(exception: any) { Logger.error(exception.message, exception.stack, 'GlobalFilter'); } correctly calls Logger.error with message, stack, and 'GlobalFilter' context. Others use wrong log levels or miss stack/context.Final Answer:
catch(exception: any) { Logger.error(exception.message, exception.stack, 'GlobalFilter'); } -> Option BQuick Check:
Global filter logs errors with Logger.error and context [OK]
Hint: Use Logger.error with message, stack, and context in global filters [OK]
Common Mistakes:
- Using Logger.log or Logger.warn instead of Logger.error
- Omitting stack trace or context
- Using Logger.debug which is too low level
