我正在尝试控制错误的显示方式。
我正在尝试执行以下操作: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>
编辑:我有多个依赖项,它们使用异常处理,因此无法修改它们。
答案 0 :(得分:1)
您需要添加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 )
}
}
答案 1 :(得分:0)
您可以使用Thread.setDefaultUncaughtExceptionHandler();
设置DefaultExceptionHandler
顾名思义,它处理throw
引发的未捕获异常,但不会打印堆栈跟踪!
但是,如果您在代码中的某处使用了try{}catch(Exception e){e.printStackTrace();}
,那么您将无法改变它的显示方式