当前位置: 首页 > 知识库问答 >
问题:

如何在spring rest API上处理内部服务器错误(500)?

郎永福
2023-03-14
@Override
protected ResponseEntity<Object> handleExceptionInternal(Exception ex, Object body, HttpHeaders headers, HttpStatus status, WebRequest request) {

    GenericResponse response = new GenericResponse();
    response.setMessage("Internal error occured, " + ex.getStackTrace()[0]);

    System.out.println("big exceptions");

    return new ResponseEntity(response, headers, status);

}

谢了。

共有1个答案

冉伯寅
2023-03-14
@ControllerAdvice
public class Handler {

    @ExceptionHandler(Exception.class)
    public ResponseEntity<Object> handle(Exception ex, 
                HttpServletRequest request, HttpServletResponse response) {
        if (ex instanceof NullPointerException) {
            return new ResponseEntity<>(HttpStatus.BAD_REQUEST);
        }
        return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build();
    }
}

ExceptionHandler文档-在这里可以找到方法签名可以操作的所有对象。

ControllerAdvise-没有其他属性,它将处理所有异常,因此可以提供意外行为。最好为basePackages属性提供一个包(您的包),它只处理在指定包中引发的异常。

另外,将异常分离到自定义@exceptionHandler标记的方法也是一个很好的做法,这将解耦处理程序逻辑。

 类似资料:
  • 我在spring rest api上工作,我想确保一切都正常工作。我想记录异常行为数据库连接错误等等,我正在使用couchbase数据库,并在endpoint响应中获得例如此类异常:下一条消息:和一个非常长的跟踪。 为此,我在internet上找到了一个解决方案,即扩展ResponseEntityExceptionHandler并重写handleExceptionInternal方法,如下所示:

  • 问题内容: 当使用Java的Youtube API示例将文件上传到youtube时,我得到以下信息: 在此行出现错误: 视频返回视频= videoInsert.execute(); 错误堆栈 这里已经引发了一个相关的问题: https : //code.google.com/p/gdata- issues/issues/detail?id=6352 问题答案: 一两天后自动解决!绝对是API问题。

  • 我是新的角度6。我用spring boot开发了一个post服务,当我通过postman测试它时,它工作得很好,但当我用web浏览器测试它时,它给了我这个错误: HttpErrorResponse ;{headers:HttpHeaders,status:500,statusText:“ok”,URL:“http://localhost:8080/api/test/ordermiss”,ok:fa

  • 我用wordpress和woocommerce(www.jescesole.eu)建立了一个网站。由于该网站在德国销售,我不得不在最近几天安装一个附加插件,woocommerce germanized(与polylang一起,以德语和意大利语查看内容),我升级了wp和所有插件,但当客户提交订单时,会出现一条内部服务器错误消息。我阅读了服务器错误日志,并报告了一条很长的错误消息: 周四,13四月20

  • 问题内容: 我正在尝试为这个工作中的项目学习AJAX。我有一个网站加载病人正在服用的药物。 我递归调用此AJAX函数,以便它将附加一个包含单种药物和7天历史记录的新表。我在使代码在FF和IE中执行时遇到问题。在chrome中效果很好。我有显示xmlhttp.status的警报,这是我得到的: xmlhttp.status == 500(内部服务器错误)。 我注释掉了所有递归,因此将其范围缩小到了这

  • 我收到以下错误 内部服务器错误 服务器遇到内部错误或配置错误,无法完成您的请求。 请联系服务器管理员,webmaster@strivemedicare.in并告知他们错误发生的时间,以及可能导致错误的任何行为。 有关此错误的详细信息,请参阅服务器错误日志。 此外,尝试使用错误文档处理请求时遇到 500 内部服务器错误错误。