-1

我正在使用 IntelliJ 的想法,每次我在编程过程中进行测试运行时我的程序崩溃,我厌倦了从堆栈跟踪中看到这么多行,我只想看到几行告诉我我的程序在哪里失败或者可能是一个对话框。有什么方法可以在想法或 Java 中实现这一点?谢谢

4

3 回答 3

3

您可以通过为应用程序的特定行为扩展所需的异常来创建自定义异常。然后您可以覆盖方法“setStackTrace”,您可以将从现有异常中获得的堆栈跟踪转换为将发送到新异常类的参数,然后您可以从现有堆栈跟踪中提取您想要的内容并使用你想要的内容。

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
        }
    }

最好的祝福。

于 2013-03-14T12:37:36.193 回答
2

此代码仅打印方法中出现的任何错误或异常的堆栈跟踪的前 5 行doStuff()

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]);
        }
    }
}
于 2013-03-14T12:27:03.757 回答
1

我认为您应该看看 IntelliJ 的控制台折叠自定义,它只会折叠堆栈跟踪的“嘈杂”部分。如果需要,您仍然可以看到整个堆栈跟踪(例如,当您试图查看谁调用了您的方法时)。

于 2013-03-14T12:43:00.450 回答