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

从@RestControllerAdvice@ExceptionHandler方法返回DTO

姬经义
2023-03-14

我在@RestControllerAdvice中有以下@ExceptionHandler方法:

 @ExceptionHandler(BusinessException.class)
 public ResponseEntity<Object> onException(BusinessException exception, WebRequest request) {

     Locale locale = request.getLocale();
     String message = messageSource.getMessage(exception.errorCode.toString(),
             exception.arguments, locale);

     ErrorDto errorDto = new ErrorDto(
             exception.errorCode,
             exception.arguments,
             message
     );

     return new ResponseEntity(errorDto, new HttpHeaders(), HttpStatus.CONFLICT);

}

errordTo是:

public class ErrorDto {

    ErrorCode errorCode;
    String[] arguments = new String[]{};
    String message;

    public ErrorDto(ErrorCode errorCode, String[] arguments, String message){

        this.errorCode = errorCode;
        this.arguments = arguments;
        this.message = message;

    }

}
{
    "timestamp": 1500459833663,
    "status": 500,
    "error": "Internal Server Error",
    "exception": "com.ciet.app.exceptions.BusinessException",
    "message": "No message available",
    "path": "/CietApi/errorCodeTest"
}

共有1个答案

邴烨
2023-03-14

errordto字段需要是公共的或需要具有公共getter。

 类似资料:
  • 问题内容: 我有一类这样的方法: 我如何在另一个类中调用此方法? 问题答案: 1. 如果要从中调用该方法的类位于同一包中,则创建该类的实例并调用该方法。 2. 使用 3. 最好有个赞等等。 例如:

  • 问题内容: 我目前有一种方法可以检查3x3网格中中心项周围的内容,如果8个相邻位置中的内容包含我要检查的内容,我想在长度为7的数组上将该正方形标记为1。 为此,我需要在我的方法中创建并返回一个数组,这可能吗? 问题答案: 不知道是什么问题。你是这个意思?

  • SubjectUtils是具有上述方法的类。然而,即使getAttribute返回一个空列表,我不应该期望它重新运行字符串列表吗?(testData)

  • 我正在研究一种随机数方法,从数组中选取一个随机元素。但是,我不知道如何打印方法的返回值。这是密码。

  • 我试图模拟一些方法调用,但不幸的是我一直返回null。你能帮我指出我可能出错的地方吗?我正在使用time(). thenBack(),我觉得我正确地模拟了返回变量。事先非常感谢。我是JUnit和Mockito的新手,所以如果我错过了任何明显的东西,我很抱歉。 ServiceTest.java Service.java

  • 问题内容: 我试图从Java方法返回2个值,但出现这些错误。这是我的代码: 错误: Java结果:1 问题答案: 不要返回包含两个值的数组或使用泛型Pair类,而应考虑创建一个代表要返回的结果的类,然后返回该类的实例。给班级起一个有意义的名字。与使用数组相比,此方法的好处是类型安全,这将使你的程序更易于理解。 注意:通用类,如此处其他一些答案中所建议,也可以为你提供类型安全性,但不会传达结果表示的