写点什么

SpringBoot 配置全局的异常捕获 - ajax 形式

  • 2021 年 11 月 11 日
  • 本文字数:1971 字

    阅读完需:约 6 分钟

/**


  • 捕获 ajax 请求

  • @param request

  • @param response

  • @param e

  • @return

  • @throws Exception


*/


@ExceptionHandler(value= Exception.class)


public HlvyJSONResult errExceyion(HttpServletRequest request,HttpServletResponse response,Exception e) throws Exception {


e.printStackTrace();


return HlvyJSONResult.errorException(e.getMessage());


}


}


HlvyJSONResult


package com.yh.pojo;


import java.util.List;


import com.fasterxml.jackson.databind.JsonNode;


import com.fasterxml.jackson.databind.ObjectMapper;


/**


  • @Title: LeeJSONResult.java

  • @Package com.lee.utils

  • @Description: 自定义响应数据结构

  • Copyright: Copyright (c) 201


【一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义】
浏览器打开:qq.cn.hn/FTf 免费领取
复制代码


6


  • Company:Nathan.Lee.Salvatore

  • @author leechenxiang

  • @date 2016 年 4 月 22 日 下午 8:33:36

  • @version V1.0


*/


public class HlvyJSONResult {


// 定义 jackson 对象


private static final ObjectMapper MAPPER = new ObjectMapper();


// 响应业务状态


private Integer status;


// 响应消息


private String msg;


// 响应中的数据


private Object data;


private String ok; // 不使用


public static HlvyJSONResult build(Integer status, String msg, Object data) {


return new HlvyJSONResult(status, msg, data);


}


public static HlvyJSONResult ok(Object data) {


return new HlvyJSONResult(data);


}


public static HlvyJSONResult ok() {


return new HlvyJSONResult(null);


}


public static HlvyJSONResult errorMsg(String msg) {


return new HlvyJSONResult(500, msg, null);


}


public static HlvyJSONResult errorMap(Object data) {


return new HlvyJSONResult(501, "error", data);


}


public static HlvyJSONResult errorTokenMsg(String msg) {


return new HlvyJSONResult(502, msg, null);


}


public static HlvyJSONResult errorException(String msg) {


return new HlvyJSONResult(555, msg, null);


}


public HlvyJSONResult() {


}


// public static LeeJSONResult build(Integer status, String msg) {


// return new LeeJSONResult(status, msg, null);


// }


public HlvyJSONResult(Integer status, String msg, Object data) {


this.status = status;


this.msg = msg;


this.data = data;


}


public HlvyJSONResult(Object data) {


this.status = 200;


this.msg = "OK";


this.data = data;


}


public Boolean isOK() {


return this.status == 200;


}


public Integer getStatus() {


return status;


}


public void setStatus(Integer status) {


this.status = status;


}


public String getMsg() {


return msg;


}


public void setMsg(String msg) {


this.msg = msg;


}


public Object getData() {


return data;


}


public void setData(Object data) {


this.data = data;


}


/**


  • @Description: 将 json 结果集转化为 LeeJSONResult 对象

  • @param jsonData

  • @param clazz

  • @return

  • @author leechenxiang

  • @date 2016 年 4 月 22 日 下午 8:34:58


*/


public static HlvyJSONResult formatToPojo(String jsonData, Class<?> clazz) {


try {


if (clazz == null) {


return MAPPER.readValue(jsonData, HlvyJSONResult.class);


}


JsonNode jsonNode = MAPPER.readTree(jsonData);


JsonNode data = jsonNode.get("data");


Object obj = null;


if (clazz != null) {


if (data.isObject()) {


obj = MAPPER.readValue(data.traverse(), clazz);


} else if (data.isTextual()) {


obj = MAPPER.readValue(data.asText(), clazz);


}


}


return build(jsonNode.get("status").intValue(), jsonNode.get("msg").asText(), obj);


} catch (Exception e) {


return null;


}


}


/**


  • @Description: 没有 object 对象的转化

  • @param json

  • @return

  • @author leechenxiang

  • @date 2016 年 4 月 22 日 下午 8:35:21


*/


public static HlvyJSONResult format(String json) {


try {


return MAPPER.readValue(json, HlvyJSONResult.class);


} catch (Exception e) {


e.printStackTrace();


}


return null;


}


/**


  • @Description: Object 是集合转化

  • @param jsonData

  • @param clazz

  • @return

  • @author leechenxiang

  • @date 2016 年 4 月 22 日 下午 8:35:31


*/


public static HlvyJSONResult formatToList(String jsonData, Class<?> clazz) {


try {


JsonNode jsonNode = MAPPER.readTree(jsonData);


JsonNode data = jsonNode.get("data");


Object obj = null;


if (data.isArray() && data.size() > 0) {


obj = MAPPER.readValue(data.traverse(),


MAPPER.getTypeFactory().constructCollectionType(List.class, clazz));


}


return build(jsonNode.get("status").intValue(), jsonNode.get("msg").asText(), obj);


} catch (Exception e) {


return null;


}


}


public String getOk() {


return ok;


}

评论

发布
暂无评论
SpringBoot配置全局的异常捕获 - ajax形式