import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.StringWriter;
public class ExceptionUtils {
public static void main(String[] args) {
try {
int i = 1 / 0;
} catch (Exception e) {
/**
* java.lang.ArithmeticException: / by zero at
* com.itrus.laweyecloud.
* utils.ExceptionUtils.main(ExceptionUtils.java:12)
* 分割线1********************* java.lang.ArithmeticException: / by
* zero at
* com.itrus.laweyecloud.utils.ExceptionUtils.main(ExceptionUtils
* .java:12)
*
* 分割线222********************* java.lang.ArithmeticException: / by
* zero at
* com.itrus.laweyecloud.utils.ExceptionUtils.main(ExceptionUtils
* .java:12)
*/
e.printStackTrace();
System.out.println("分割线1*********************");
System.out.println(getStackTrace2(e));
System.out.println("分割线222*********************");
System.out.println(getStackTrace(e));
}
}
public static String getStackTrace(Exception e) {
ByteArrayOutputStream buf = new java.io.ByteArrayOutputStream();
e.printStackTrace(new java.io.PrintWriter(buf, true));
String expMessage = buf.toString();
try {
buf.close();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
return expMessage;
}
public static String getStackTrace2(Exception e) {
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw, true);
e.printStackTrace(pw);
String stackTraceString = sw.getBuffer().toString();
pw.close();
try {
sw.close();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
return stackTraceString;
}
}
将完整的异常堆栈输出到某个字符串中
最新推荐文章于 2024-08-06 12:55:44 发布