java 统一异常处理

@ResponseBody
    @RequestMapping("/initRule")
    public Result initRule(String ruleName, HttpServletRequest request){

        try {
            HvacUser user=userInfoUtils.getUserinfoFromRequest(request);
            String companyId=user.getCompanyId();
            Integer counts = ruleServiceI.selectCountsByCompanyId(ruleName, companyId);
            Map dataMap = new HashMap();
            dataMap.put("totalCounts", counts);
            dataMap.put("pageSize", SysConfig.PAGE_SIZE);
            return ResultUtil.ok(dataMap);
        } catch (Exception e){
            e.printStackTrace();
            return ResultUtil.error_400();
        }
    }


/**
* socket通讯结果实体类
*/
@Data
@Component
public class ResultUtil {

/**
* 成功应答
* @return
*/
public static Result ok(){
Result result = new Result();
result.setResultCode(200);
result.setResultMessage("成功");
result.setData(null);
return result;
}

/**
* 成功应答
* @return
*/
public static Result ok(Object object){
Result result = new Result();
result.setResultCode(200);
result.setResultMessage("成功");
result.setData(object);
return result;
}

/**
* 错误应答400
* @return
*/
public static Result error_400(){
Result result = new Result();
result.setResultCode(400);
result.setResultMessage("请求格式错误");
result.setData(null);
return result;
}

/**
* 错误应答500
* @return
*/
public static Result error_500(){
Result result = new Result();
result.setResultCode(500);
result.setResultMessage("服务器内部错误");
result.setData(null);
return result;
}


/**
* 错误应答500
* @return
*/
public static Result error_403(){
Result result = new Result();
result.setResultCode(403);
result.setResultMessage("权限不足");
result.setData(null);
return result;
}

/**
* 错误应答405
* @return
*/
public static Result error_405(){
Result result = new Result();
result.setResultCode(405);
result.setResultMessage("用户被暂停使用");
result.setData(null);
return result;
}


/**
* 空地址
* @return
*/
public static Result empty_mac(){
Result result = new Result();
result.setResultCode(0);
result.setResultMessage("mac地址不能为空");
result.setData(null);
return result;
}

/**
* 参数非法
* @return
*/
public static Result illegal_mac(){
Result result = new Result();
result.setResultCode(1);
result.setResultMessage("参数非法,请确认后再试");
result.setData(null);
return result;
}

/**
* 参数非法
* @return
*/
public static Result illegal_mac(String data){
Result result = new Result();
result.setResultCode(1);
result.setResultMessage("参数非法,请确认后再试");
result.setData(data);
return result;
}

/**
* mac未连接
* @return
*/
public static Result shutdown_mac(){
Result result = new Result();
result.setResultCode(2);
result.setResultMessage("该设备网关未连接成功,请稍后再试");
result.setData(null);
return result;
}

/**
* 空内容
* @return
*/
public static Result empty_msg(){
Result result = new Result();
result.setResultCode(2);
result.setResultMessage("内容不能为空");
result.setData(null);
return result;
}





/**
* 成功结果
* @return
*/
public static Result success(){
Result result = new Result();
result.setResultCode(0);
result.setResultMessage("success");
return result;
}

/**
* 成功结果
* @param object
* @return
*/
public static Result success(Object object){
Result result = new Result();
result.setResultCode(0);
result.setResultMessage("success");
result.setData(object);
return result;
}

/**
* 失败结果
* @param resultEnum
* @return
*/
public static Result error(ResultEnum resultEnum){
Result result = new Result();
result.setResultCode(resultEnum.getCode());
result.setResultMessage(resultEnum.getMessage());
result.setData(null);
return result;
}
}

Filter 过滤
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpServletRequest httpServletRequest = (HttpServletRequest) request;
HttpServletResponse httpServletResponse = (HttpServletResponse) response;
// 从httpServletRequest中获取访问路径
String currentURL = httpServletRequest.getRequestURI();
if ("/login/userLogin".equals(currentURL)) { // 登录接口
chain.doFilter(request,response);
} else {
// 验证cookie是否过期
Cookie cookie = CookieUtil.get(httpServletRequest, CookieConstant.token);
try {
if (cookie != null) { // 验证成功
// 获取用户id
String userId = stringRedisTemplate.opsForValue().get(String.format(RedisConstant.TOKEN_TEMPLATE,cookie.getValue()));
if (!StringUtils.isEmpty(userId)){
// 刷新token过期时间
String token = cookie.getValue();
Integer expire = CookieConstant.expire;
stringRedisTemplate.opsForValue().set(String.format(RedisConstant.TOKEN_TEMPLATE,token),
userId,expire, TimeUnit.SECONDS);
// 放行
chain.doFilter(request,response);
} else {
log.error("【LoginFilter】 --> 登录认证失败,缓存中已经没有用户信息,返回403");
if (cookie != null) { // 清除cookie
CookieUtil.set(httpServletResponse, CookieConstant.token, null, 0);
}
httpServletResponse.sendError(400);
}
} else { // 清空cookie
log.error("【LoginFilter】 --> 登录认证失败,返回401");
if (cookie != null) { // 清除cookie
CookieUtil.set(httpServletResponse, CookieConstant.token,null,0);
}
httpServletResponse.sendError(400);
}
} catch (Exception e) {
e.printStackTrace();
log.error("【LoginFilter】 --》 登录认证失败,返回402");
if (cookie != null) { // 清除cookie
CookieUtil.set(httpServletResponse, CookieConstant.token,null,0);
}
httpServletResponse.sendError(400);
}
}
}



前端接收

  $.ajax({
url: contextPath+"/rule/editrule",
data: JSON.stringify(rule),
type: "POST",
dataType: "JSON",
async: false,
contentType: "application/json",
xhrFields: {
withCredentials: true
},
success: function (data) {
if(data.resultCode==200){
$("#editAlert").show();
$("#p1").hide();
}else{
$("#editErrAlert").show();
$("#p1").hide();
}
}

});
}
}


 

posted @ 2019-05-29 12:28  旅行的青蛙  阅读(650)  评论(0编辑  收藏  举报