0
0
Spring Bootframework~20 mins

Problem Details for standard error format in Spring Boot - Practice Problems & Coding Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
Problem Details Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
component_behavior
intermediate
2:00remaining
What is the output of this Spring Boot error response?
Given a REST controller that throws a ResponseStatusException with status 404 and a custom message, what will the JSON error response contain when using Spring Boot's default Problem Details format?
Spring Boot
throw new ResponseStatusException(HttpStatus.NOT_FOUND, "User not found");
A{"error":"Not Found","message":"User not found","status":404}
B{"type":"about:blank","title":"Not Found","status":404,"detail":"User not found"}
C{"code":404,"error":"User not found"}
D{"status":404,"error":"Not Found","description":"User not found"}
Attempts:
2 left
💡 Hint
Look for the standard keys defined by RFC 7807 in the JSON response.
📝 Syntax
intermediate
2:00remaining
Which code snippet correctly creates a Problem Details response in Spring Boot?
You want to return a custom Problem Details JSON response with status 400 and a detail message. Which code snippet correctly uses Spring Boot's ProblemDetail class?
AProblemDetail pd = new ProblemDetail(400, "Invalid input"); return ResponseEntity.badRequest().body(pd);
BProblemDetail pd = ProblemDetail.create(400, "Invalid input"); return ResponseEntity.status(400).body(pd);
CProblemDetail pd = ProblemDetail.forStatusAndDetail(HttpStatus.BAD_REQUEST, "Invalid input"); return ResponseEntity.status(pd.getStatus()).body(pd);
DProblemDetail pd = ProblemDetail.of(HttpStatus.BAD_REQUEST, "Invalid input"); return ResponseEntity.badRequest().body(pd);
Attempts:
2 left
💡 Hint
Check the official Spring Boot 3 method to create ProblemDetail instances.
🔧 Debug
advanced
2:00remaining
Why does this custom error handler not return Problem Details JSON?
A developer wrote this exception handler method but the response is plain text instead of Problem Details JSON. What is the likely cause?
Spring Boot
@ExceptionHandler(IllegalArgumentException.class)
@ResponseStatus(HttpStatus.BAD_REQUEST)
public String handleBadRequest(IllegalArgumentException ex) {
    return ex.getMessage();
}
AThe method lacks @ResponseBody annotation to serialize the return value.
BThe @ResponseStatus annotation is missing the produces attribute for JSON.
CThe exception handler must return ResponseEntity<ProblemDetail> to produce JSON.
DThe method returns a String, so Spring treats it as plain text instead of ProblemDetail JSON.
Attempts:
2 left
💡 Hint
Consider how Spring decides the response content type based on return type.
🧠 Conceptual
advanced
1:30remaining
What is the purpose of the 'type' field in Problem Details JSON?
In the Problem Details standard error format, what does the type field represent?
AA URI reference that identifies the problem type, providing human-readable documentation.
BThe timestamp when the error occurred.
CA short summary of the error message.
DThe HTTP status code of the error.
Attempts:
2 left
💡 Hint
Think about how clients can learn more about the error type.
state_output
expert
2:30remaining
What is the JSON output of this Spring Boot controller advice method?
Given this controller advice method, what JSON will be returned when a NullPointerException occurs?
Spring Boot
@ControllerAdvice
public class GlobalExceptionHandler {
    @ExceptionHandler(NullPointerException.class)
    public ResponseEntity<ProblemDetail> handleNullPointer(NullPointerException ex) {
        ProblemDetail pd = ProblemDetail.forStatusAndDetail(HttpStatus.INTERNAL_SERVER_ERROR, "Null value encountered");
        pd.setType(URI.create("https://example.com/errors/null-pointer"));
        pd.setTitle("Null Pointer Exception");
        return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(pd);
    }
}
A{"type":"https://example.com/errors/null-pointer","title":"Null Pointer Exception","status":500,"detail":"Null value encountered"}
B{"error":"Null Pointer Exception","message":"Null value encountered","status":500}
C{"status":500,"title":"Null Pointer Exception","description":"Null value encountered"}
D{"type":"about:blank","title":"Internal Server Error","status":500,"detail":"Null value encountered"}
Attempts:
2 left
💡 Hint
Check how the ProblemDetail fields are set explicitly in the method.