我最近一直在使用axios,但我无法获得Sping Boot RuntimeException抛出的错误消息。
我创建了一个简单的RuntimeException
,它会抛出404状态:
@ResponseStatus(HttpStatus.BAD_REQUEST)
public class BadRequestException extends RuntimeException {
public BadRequestException(String message) {
super(message);
}
}
我向我的一个端点发出GET请求,它所做的只是抛出BadRequestException
并显示一些消息:
@RestController
public class TestController {
@GetMapping("/throw")
public ResponseEntity<?> throwError() {
throw new BadRequestException("This text should be in statusText");
}
}
catch子句(.catch((error) => console.log(error.response))
)中的console.log()
为:
正如您所看到的,statusText
只是一个空字符串,其中应该是"This text should be in statusText"
。
使用fetch()
可以很好地工作,但是在我的情况下从axios
切换到fetch
将是浪费时间。
我是否遗漏了什么?我是否正确地抛出了消息中的异常?
提前感谢所有的答案!
1条答案
按热度按时间2ledvvac1#
请注意,HTTP/2不支持状态文本消息,因此您在HTTP/2连接上总是会得到一个空的状态文本消息(通常这意味着您在开发中得到它们,但在生产中它们是空的)。https://developer.mozilla.org/en-US/docs/Web/API/Response/statusText