为了账号安全,请及时绑定邮箱和手机立即绑定

控制异常输出格式

控制异常输出格式

阿波罗的战车 2022-10-07 19:39:04
我正在尝试控制错误的显示方式。我正在尝试做类似的事情:https://stackoverflow.com/a/22271986/10538678但在全局级别(对于每个抛出的异常)。我尝试了这个问题中描述的这个例子,但我不知道如何在全球范围内实现这个代替:Exception in thread "threadName" Name of Exception : Description... ...... ..  // Call Stack例如我想显示错误:<Error>    <ErrorCode>customErrorCode</ErrorCode>    <ErorMsg>Description</ErorMsg>    <ErrorClass>className</ErrorClass>    <ErrorThread>threadName</ErrorThread></Error>编辑:我有多个使用异常处理的依赖项,我无法修改它们。
查看完整描述

2 回答

?
慕标琳琳

TA贡献1830条经验 获得超9个赞

你可以设置一个 DefaultExceptionHandler ,Thread.setDefaultUncaughtExceptionHandler(); 就像名字告诉你的那样,它处理抛出的未捕获的异常,throw但不打印堆栈跟踪!

但是,如果在你使用的代码中的某个地方,你try{}catch(Exception e){e.printStackTrace();}不能做任何事情来改变它的呈现方式


查看完整回答
反对 回复 2022-10-07
?
Qyouu

TA贡献1786条经验 获得超11个赞

您需要添加ControllerAdvice。在你的情况下,它会是这样的:

@ControllerAdvice

public class RestResponseEntityExceptionHandler 

  extends ResponseEntityExceptionHandler {


    @ExceptionHandler(value = { Exception.class})

    protected ResponseEntity<String> handleException(Exception e) {

        String bodyOfResponse = "This should be application specific";

        return new ResponseEntiy<String>(bodyOfResponse )

    }

}


查看完整回答
反对 回复 2022-10-07
  • 2 回答
  • 0 关注
  • 77 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信