1024了,发个公司项目中ajax请求后台的异常处理。——菜鸟
正在使用的自定义异常类
/**
*
* 系统业务异常
*/
public class BusinessException extends RuntimeException {
private String code;
private String message;
public BusinessException() {
super();
}
public BusinessException(String message) {
super(message);
this.message = message;
}
public BusinessException(String code, String message) {
super(message);
this.code = code;
this.message = message;
}
public BusinessException(Throwable cause) {
super(cause);
}
public BusinessException(String message, Throwable cause) {
super(message, cause);
this.message = message;
}
public BusinessException(String code, String message, Throwable cause) {
super(message, cause);
this.code = code;
this.message = message;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
Service层的方法抛出异常
if (object==null) {
throw new BusinessException("数据不存在,请刷页面后重试");
}
Controller层捕获异常:
@RequestMapping(value="/url.htm")
@ResponseBody
@Log(operationDes="******")
public Map<String,Object> saveForUserAdd(HttpSession session,String name){
Map<String,Object> outputMap =null;
try{
outputMap = services.saveForUserAdd(session,name);
outputMap.put("errorCode",0);
}catch (Exception e){
logger.error(e.getMessage());
outputMap = new HashMap<>();
outputMap.put("errorCode", -1);
if (e instanceof BusinessException) {
outputMap.put("errorMsg", e.getMessage());
} else {
outputMap.put("errorMsg", "系统错误");
}
}
return outputMap;
}