我正在尝试控制错误的显示方式。我正在尝试做类似的事情: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();}
不能做任何事情来改变它的呈现方式
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 )
}
}
添加回答
举报
0/150
提交
取消