java - 提供 JSON 的错误处理

标签 java spring error-handling

我正在尝试创建一个简单的错误处理项目,它会在收到错误(例如 404、422 或 500)后为 JSON 提供错误数据。我使用来自 this 的代码网站,但它不适合我。

我实际上有这两个类:

基本 Controller 类(class)

package com.mycompany.jsonerrorhandler;

import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.web.servlet.ModelAndView;


/**
 * Class to catch all exception
 */
public class BasicController 
{
    @ExceptionHandler (Exception.class)
    @ResponseStatus (HttpStatus.INTERNAL_SERVER_ERROR)
    public ModelAndView handleAllExceptions(Exception ex)
    {
        return new JsonError(ex.getMessage()).asModelAndView();
    }
}

JsonError 类(class)
package com.mycompany.jsonerrorhandler;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.view.json.MappingJacksonJsonView;
import com.google.common.collect.ImmutableMap;

/**
 * Class that defines what JSON Error looks like
 */
public class JsonError 
{
    private final String message;

    public JsonError(String message)
    {
        this.message = message;
    }

    public ModelAndView asModelAndView()
    {
        MappingJacksonJsonView jsonView = new MappingJacksonJsonView();
        return new ModelAndView(jsonView, ImmutableMap.of("error", message));
    }
}

我想知道我需要什么来连接它们并接收 JSON(或者这个问题可能有其他解决方案)。

最佳答案

根据您提供的类似内容,JsonError 类应包含以下内容:

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.view.json.MappingJacksonJsonView;
import com.google.common.collect.ImmutableMap;

    public class JsonError
    {
        private final String message;

        public JsonError(String message) {
            this.message = message;
        }

        public ModelAndView asModelAndView() {
            MappingJacksonJsonView jsonView = new MappingJacksonJsonView();
            return new ModelAndView(jsonView, ImmutableMap.of("error", message));
        }
    }

关于java - 提供 JSON 的错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35988155/

相关文章:

java - 二维数组平均值 (Java)

java - 我们可以向我们启动的 url 添加一个参数以在 Tomcat 上执行 Java 类(实际上是一个 servlet)吗?

java - JSF 2 Spring XRebel 大型 session

git - 带有 Git 命令错误处理的 Powershell - 自动中止外部程序的非零退出代码

java - 有没有办法摆脱我得到的这个空指针异常?

c# - 如何获取导致 MVC 中的 "A potentially dangerous Request.Form value was detected from the client"的表单值?

java - 在 Struts 2 操作中使用和控制 Spring 事务

java - 在 spring boot 的请求 json 主体中存在可变键值时处理 RequestBody

java - @Resource 为 String 类的 bean 返回 null

java - 如何通过代码设置组件的顶部中心位置?