簡體   English   中英

Java程序失敗時是否可以修改打印的堆棧跟蹤?

[英]Can I modify the printed stack trace when a Java program fails?

我使用的是IntelliJ想法,每次在編程過程中進行測試運行時我的程序崩潰,我都厭倦了從堆棧跟蹤中看到這么多行,我只想看幾行來告訴我程序在哪里失敗或對話框。 總的來說,有什么辦法可以實現我的想法或Java? 謝謝

此代碼僅打印出現在doStuff()方法中的任何錯誤或異常的堆棧跟蹤的前5行。

public static void main(String[] args){
    try{
        doStuff();
    }
    catch(Throwable t){
        StackTraceElement[] elements = t.getStackTrace();
        for(int i = 0; i < 5; i++){
            System.err.println(elements[i]);
        }
    }
}

您可以通過擴展所需的應用程序特定行為的異常來創建自定義異常。 然后,您可以覆蓋方法“ setStackTrace”,可以將從現有異常中獲取的堆棧跟蹤轉換為將發送到新Exception類的參數,可以從現有堆棧跟蹤中提取所需內容,並使用您想要的內容。

class CustomException extends Exception {
        @Override
        public void setStackTrace(StackTraceElement[] stackTrace) {
            // Get elements I want from my stack trace
                    // Then I add what I want from the existing stacktrace and add some custom content
        }
    }

最好的祝福。

我認為您應該看一下IntelliJ的控制台折疊自定義功能 ,它只會折疊您堆棧跟蹤中“嘈雜”的部分。 如果需要,您仍然可以查看整個stacktrace(例如,當您嘗試查看誰調用了您的方法時)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM