package com.ly.test.fql;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class TestPrintStackTrace {
private static final Logger LOG = LoggerFactory.getLogger(TestPrintStackTrace.class);
public static void main(String[] args) {
try {
String[] data = new String[] {"aaaa", "bbbb"};
data[3] = "IndexOutOfBounds";
} catch (Exception e) {
LOG.info("==========================");
LOG.info("e.printStackTrace(): info ", e);
LOG.info("==========================");
LOG.info("e.getMessage(): " + e.getMessage());
LOG.info("==========================");
LOG.info("e.getLocalizedMessage(): " + e.getLocalizedMessage());
LOG.info("==========================");
LOG.info("e.toString(): " + e.toString());
LOG.info("===========e.printStackTrace()===============");
e.printStackTrace();
}
}
}
运行
21:20:25.483 [main] INFO com.ly.test.TestPrintStackTrace - ==========================
21:20:25.483 [main] INFO com.ly.test.TestPrintStackTrace - e.printStackTrace(): info
java.lang.ArrayIndexOutOfBoundsException: 3
at com.ly.test.TestPrintStackTrace.main(TestPrintStackTrace.java:11)
21:20:25.483 [main] INFO com.ly.test.TestPrintStackTrace - ==========================
21:20:25.483 [main] INFO com.ly.test.TestPrintStackTrace - e.getMessage(): 3
21:20:25.483 [main] INFO com.ly.test.TestPrintStackTrace - ==========================
21:20:25.483 [main] INFO com.ly.test.TestPrintStackTrace - e.getLocalizedMessage(): 3
21:20:25.483 [main] INFO com.ly.test.TestPrintStackTrace - ==========================
21:20:25.483 [main] INFO com.ly.test.TestPrintStackTrace - e.toString(): java.lang.ArrayIndexOutOfBoundsException: 3
21:20:25.483 [main] INFO com.ly.test.TestPrintStackTrace - ===========e.printStackTrace()===============
java.lang.ArrayIndexOutOfBoundsException: 3
at com.ly.test.TestPrintStackTrace.main(TestPrintStackTrace.java:11)
RunTimeException
正确的方式:
log.xxx("",e)
ByteArrayOutputStream baos = new ByteArrayOutputStream();
PrintStream ps = new PrintStream(baos);
e.printStackTrace(ps);
return new String(baos.toByteArray(), StandardCharsets.UTF_8);
本文详细介绍了Java中如何处理ArrayIndexOutOfBoundsException异常,并通过Slf4j进行日志记录的方法。包括使用log.info方法记录异常堆栈跟踪,以及将异常信息转换为字符串的技术。
2034

被折叠的 条评论
为什么被折叠?



