【发布时间】:2016-07-19 01:31:03
【问题描述】:
我使用 spring boot 并开始管理错误。
我创建一个异常处理来处理未找到的资源。
@ControllerAdvice
public class RestResponseEntityExceptionHandler extends ResponseEntityExceptionHandler {
@ExceptionHandler(ResourceNotFoundException.class)
private ResponseEntity<Void> handleResourceNotFoundException(ResourceNotFoundException e) {
return ResponseEntity.notFound().build();
}
}
在我的控制器中我这样做
@RequestMapping(value = "/members/{memberId}", method = RequestMethod.GET)
public ResponseEntity getMemberById(@PathVariable("memberId") Long memberId) throws ResourceNotFoundException {
MemberDto memberDto = memberService.getMemberById(memberId);
return new ResponseEntity(memberDto, HttpStatus.OK);
}
@Override
public MemberDto getMemberById(Long memberId) throws ResourceNotFoundException {
Member member = memberRepository.findOne(memberId);
if (member == null) {
throw new ResourceNotFoundException("Member not found");
}
return convertToMemberDto(member);
}
我只有几个成员,所以如果我打电话
localhost:/members/999
我在响应头中看到了 chrome
HTTP/1.1 404 Not Found
Server: Apache-Coyote/1.1
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 0
Date: Tue, 19 Jul 2016 01:04:25 GMT
为什么我没有收到消息:找不到会员? 这是管理 Spring Boot 错误的好方法吗? 如何管理控制器中不同类型的错误?
【问题讨论】:
标签: spring spring-boot