首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring 4 mvc全局异常处理

Spring 4 mvc全局异常处理
EN

Stack Overflow用户
提问于 2016-07-15 11:29:07
回答 1查看 2.5K关注 0票数 1

我是spring mvc的新手,抱歉,如果我问了一个基本的问题,我需要在我的spring 4 MVC,Jersey项目中维护全局异常处理,并将JSON响应返回给IOS移动应用程序。现在,通过使用@ControllerAdvice和@ExceptionHandler,我已经创建了一个如下所示的类

代码语言:javascript
复制
@ControllerAdvice
public class GlobalExceptionHandlerController {

    @ExceptionHandler(Exception.class)
    public @ResponseBody handleException(HttpServletRequest reqException ex) {
            ErrorInfo response=new ErrorInfo();
                   if(ex.getMessage.contains("java.io")){
                     response.setMessage("FileNotFound exception occur");
                        return response;
                     }else if ...
    }

请告知上述方法是否正确,或者是否有任何替代方法来处理控制器、服务和DAO层中发生的所有异常。

EN

回答 1

Stack Overflow用户

发布于 2016-07-15 13:28:52

您使用的是正确的,所有的异常都是handled.In服务或Dao层,您只需要抛出您创建的业务exception.The类,它会捕获您应该以不同方式处理异常的exception.But,并定义您自己的业务异常。以下是一些示例代码。

代码语言:javascript
复制
@ExceptionHandler(RuntimeException.class)
@ResponseStatus(value = HttpStatus.INTERNAL_SERVER_ERROR)
@ResponseBody
public ErrorResponse handleUnexpectedServerError(RuntimeException ex) {
    ex.printStackTrace();
    return new ErrorResponse("012", ex.getMessage());
}

处理业务异常,BusinessErrorException为自定义异常。

代码语言:javascript
复制
@ExceptionHandler(BusinessErrorException.class)
@ResponseStatus(value = HttpStatus.BAD_REQUEST)
@ResponseBody
public ErrorResponse handleBusinessErrorException(BusinessErrorExceptionex) {

    return new ErrorResponse(ex.getCode(), ex.getMessage());
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38387421

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档