我目前正在使用java和spring Boot 来获得API的授权。这取决于用户插入的值来查看API是否有效。如果有效,它基本上会显示数据。
主要问题
当用户在api的末尾输入错误的值时,我得到错误500“内部服务器错误”,它停止了我的spring应用程序。我想创建一个异常,它将捕获这个错误,并吐出错误500,而不是停止我的应用程序。即使是错误的值,我也希望我的应用程序继续运行。
错误
当用户输入错误的参数时,我收到以下错误
org.springframework.web.client.HttpServerErrorException: 500 Internal Server Error
如何覆盖它,以便即使用户输入错误数据,也不会中断应用程序并继续运行只需对数据显示Null
试图处理
我能够使用下面代码允许应用程序继续运行
try { //OauthRestTemplate exhanges credentials for api access
} catch (HttpServerErrorException e ) {
e.getStatusCode();
logger.info(e + "Server bypass, Continue running application");
//allow application to continue running but does not display the actual message that would be on the api.
}
//output
org.springframework.web.client.HttpServerErrorException: 500 Internal Server ErrorServer bypass, Continue running application
但我希望它绕过状态500,并显示实际的消息,当我在API上使用错误的参数时。我应该收到相同的值打印在API上。示例如下
{"message":"Physical resource does not exist for mac address: D","code":"APRO-2001","timestamp":1490895756655,"type":"com.server.camp.framework.exception.ErrorResponse","status":"INTERNAL_SERVER_ERROR"}
1条答案
按热度按时间xzv2uavs1#
我不知道这是否适用于您的问题(因为您还没有提供代码),但这可能会有所帮助:
您基本上可以将@ResponseStatus添加到类内的函数中,将值设置为适当的值(在您的示例中为INTERNAL_SERVER_ERROR,如下所示)。
我希望这能有所帮助!如果没有,请提供您的代码。
也许这个关于 Spring 异常处理的链接可能会有所帮助:https://spring.io/blog/2013/11/01/exception-handling-in-spring-mvc