In Spring Boot, I create custom exception class with specific status code, and I call it to throw exception with code: 100 and message: "No have content" at controller, but output still returns "status": 500 and "error": "Internal Server Error"
AppException.java
public class AppException extends RuntimeException {
private static final long serialVersionUID = 1L;
private final Integer code;
public AppException(Integer code, String message) {
super(message);
this.code = code;
}
public Integer getCode() {
return code;
}
}
UserController.java
@RestController
@RequestMapping("/api/user")
public class UserController {
@Autowired
private UserService userService;
@GetMapping()
public ApiResponseDto getAllUsers(Pageable pageable) {
Page<User> users = userService.getAllUsers(pageable);
if (users.getSize() < 0) {
throw new AppException(100, "No have content");
}
return new ApiResponseDto(HttpStatus.OK.value(), users);
}
Actual Output:
{
"timestamp": 1550987372934,
"status": 500,
"error": "Internal Server Error",
"exception": "com.app.core.exception.AppException",
"message": "No have content",
"path": "/api/user"
}
My expectation:
{
"timestamp": 1550987372934,
"status": 100,
"error": "No have content",
"exception": "com.app.core.exception.AppException",
"message": "No have content",
"path": "/api/user"
}