异常信息处理方式有两种:
一、打印控制台,即使用e.printStackTrace();只会在控制台输出,日志不会记录。(非常不建议使用,如果运维没有开启控制台输出,找不到异常信息)
二、记录到日志
记录方式有简单的分两种:
1、log.error(e.getMessage());只会记录简单的信息(信息不全,不推荐)
2、log.error(“某某业务失败:”,e);可以记录跟控制台一样的详细信息。(推荐使用)
还可以继续加参数 log.error(“某某{}业务失败:”,param,e);
另外,如果想拿到详细的异常信息,可以使用一下方法:
package com.zyf.common.utils;
import java.io.PrintWriter;
import java.io.StringWriter;
/**
* 获取异常全部信息
* @author zyf
*
*/
public class ExceptionUtil {
public static String getExceptionMessage(Throwable throwable) {
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
try {
throwable.printStackTrace(pw);
return sw.toString();
} finally {
pw.close();
}
}
}