1.程序员在开发过程中,经常会对可能发生异常的代码段进行异常捕获,为便于追踪问题,需要将异常信息打印到日志文件或记录到日志表中。
举例:
/**
* 测试异常捕获机制
* @author shixiangcheng
* 2019-12-02
*/
public class Test {
public static void main(String [] args) throws Exception{
try{
double a=1/0;//执行到当前行将报错
}catch(Exception e){
//捕获异常,只能将错误信息打印到控制台,不便于上线后的跟踪
e.printStackTrace();
}finally{
}
}
}
如上所示代码,只能将异常信息打印到控制台,不便于上线后的问题跟踪。可以做如下修改:
import java.io.PrintWriter;
import java.io.StringWriter;
import java.io.Writer;
/**
* 测试异常捕获机制
* @author shixiangcheng
* 2019-12-02
*/
public class Test {
public static void main(String [] args) throws Exception{
try{
double a=1/0;//执行到当前行将报错
}catch(Exception e){
//捕获异常
final Writer result = new StringWriter();
final PrintWriter printWriter = new PrintWriter(result);
e.fillInStackTrace().printStackTrace(printWriter);
//将异常信息转换为字符串输出
System.out.println("result= "+result.toString());
}finally{
//记录日志(包含异常信息)
}
}
}
执行结果:
result= java.lang.ArithmeticException: / by zero
at com.anji.ajdp.Test.main(Test.java:20)
上图代码中将异常信息转换到字符串中,便于打印到日志文件或记录到表里。
欢迎大家积极交流学习心得。据说给我点赞的人最美了。赞赞赞。