printStackTrace&getMessage 朱雀 2022-03-18 02:36 119阅读 0赞 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);
还没有评论,来说两句吧...