Java異常堆棧信息轉String

平時使用e.getMessage()或e.printStackTrace();數據庫

第一種報異常時要throw new RuntimeException("異常"),只能獲得異常2字.apache

第二種e.printStackTrace();只是打印,不返回任何數據.服務器

而服務器通常是集羣或其餘方式部署,查看日誌的話太麻煩,能夠吧堆棧信息轉成String等類型,而後進行保存到數據庫、放在頁面隱藏域中方便查看.this

介紹3種方法供選擇:spa

方法一:日誌

package name.xu;public class CallStack {    public static void printCallStatck() {
        Throwable ex = new Throwable();
        StackTraceElement[] stackElements = ex.getStackTrace();        
        if (stackElements != null) {            
            for (int i = 0; i < stackElements.length; i++) {
                System.out.print(stackElements[i].getClassName()+"/t");
                System.out.print(stackElements[i].getFileName()+"/t");
                System.out.print(stackElements[i].getLineNumber()+"/t");
                System.out.println(stackElements[i].getMethodName());
                System.out.println("-----------------------------------");
            }
        }
    }
    
}


方法二:code

Exception e = new Exception("this is a log");
e.printStackTrace();

 

方法三:orm

String fullStackTrace = org.apache.commons.lang.exception.ExceptionUtils.getFullStackTrace(e)

 

方法四:部署

Thread.currentThread().getStackTrace()

 

我的推薦,方法一,緣由:簡單易用,速度快get

相關文章
相關標籤/搜索