printStackTrace&getMessage

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);

 

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页