概要
自定义异常类
package com.exception;
public class SysException extends Exception {
private String message;
public SysException(String message) {
this.message = message;
}
@Override
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
处理异常逻辑
package com.exception;
import org.springframework.web.servlet.HandlerExceptionResolver;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class SysExceptionResolver implements HandlerExceptionResolver {
@Override
public ModelAndView resolveException(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) {
SysException sysException =null;
if (e instanceof SysException) {
sysException = (SysException) e;
} else {
sysException = new SysException("服务器正在维护...");
}
ModelAndView mv = new ModelAndView();
mv.addObject("errorMsg",sysException.getMessage());
mv.setViewName("error");
return mv;
}
}
配置异常处理器
<bean id="sysExceptionResolver" class="com.exception.SysExceptionResolver"></bean>
UserController.java
package com.controller;
import com.exception.SysException;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping("/user")
public class UserController {
@RequestMapping("/testException")
public String testException() throws SysException {
System.out.println("testException......");
try {
int a = 10/0;
} catch (Exception e) {
e.printStackTrace();
throw new SysException("服务器正忙.....");
}
return "success";
}
}