出现异常,为了用户体验良好,为了将异常存储日志。统一一个异常捕获返回界面,或者返回string
利用AOP技术做全局捕获异常
package com.hsit.lsj.error;
import java.io.FileWriter;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
import net.sf.json.JSONArray;
@ControllerAdvice(basePackages="com.hsit.lsj.controller")//切面自定义扫描包
public class GlobalExceptionhandler {
@ExceptionHandler(RuntimeException.class)//自定义捕获何种异常
@ResponseBody//返回json格式
public Map<String,Object> returnJson(RuntimeException runE) {
Map<String,Object> resultMap = new HashMap<String,Object>();
resultMap.put("CODE","404");
resultMap.put("Msg", "系统错!");
resultMap.put("exception:", runE.getStackTrace());
fileWrite("C:\\Users\\Administrator\\Desktop\\exception.txt",JSONArray.fromObject(runE.getStackTrace()).toString());
return resultMap;
}
//将字符串写入文件中
public void fileWrite(String filePath,String str) {
FileWriter file;
try {
file = new FileWriter(filePath,true);
file.write(str);
file.flush();
file.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}