我是spring mvc的新手,抱歉,如果我问了一个基本的问题,我需要在我的spring 4 MVC,Jersey项目中维护全局异常处理,并将JSON响应返回给IOS移动应用程序。现在,通过使用@ControllerAdvice和@ExceptionHandler,我已经创建了一个如下所示的类
@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层中发生的所有异常。
发布于 2016-07-15 13:28:52
您使用的是正确的,所有的异常都是handled.In服务或Dao层,您只需要抛出您创建的业务exception.The类,它会捕获您应该以不同方式处理异常的exception.But,并定义您自己的业务异常。以下是一些示例代码。
@ExceptionHandler(RuntimeException.class)
@ResponseStatus(value = HttpStatus.INTERNAL_SERVER_ERROR)
@ResponseBody
public ErrorResponse handleUnexpectedServerError(RuntimeException ex) {
ex.printStackTrace();
return new ErrorResponse("012", ex.getMessage());
}处理业务异常,BusinessErrorException为自定义异常。
@ExceptionHandler(BusinessErrorException.class)
@ResponseStatus(value = HttpStatus.BAD_REQUEST)
@ResponseBody
public ErrorResponse handleBusinessErrorException(BusinessErrorExceptionex) {
return new ErrorResponse(ex.getCode(), ex.getMessage());
}https://stackoverflow.com/questions/38387421
复制相似问题