Java 如何在我的程序中引发错误以显示printstacktrace

Java 如何在我的程序中引发错误以显示printstacktrace,java,printstacktrace,Java,Printstacktrace,如何引发错误,以便exc.printStackTrace(System.out)在我运行程序时显示: public String getName(){ try { if(haveName()) return Name; else { throw new CorrectNameException("no name"); } } catch (ExistException e) { return

如何引发错误,以便
exc.printStackTrace(System.out)在我运行程序时显示:

public String getName(){
    try {
        if(haveName()) return Name;
        else {
            throw new CorrectNameException("no name");
        }
    } catch (ExistException e) {
        return e.getExc();
    } catch (CorrectNameException exc) {
        exc.printStackTrace(System.out);
        return "nameless";
    }
}

使
haveName()
返回false。简单。

根据您在问题中发布的内容,答案应该是“当haveName()方法返回false时”

但如果您解释完整的用例,我们可以稍微修改一下您的代码。据我所知,你的方法是检查两件事

  • 名称是否存在
  • 名称是否有效
关于你的问题,我有几个问题:

  • 方法haveName()是否同时检查存在性和有效性?(或者仅仅为了生存)
  • 您是否在haveName()方法中抛出任何异常

你所拥有的有什么问题吗?没什么问题,我的教授让我在我的程序中挑起一个错误,这样当程序执行时,附加程序的stacktrace会打印在控制台上。你需要理解自己的代码。捕获CorrectNameException时,将打印堆栈跟踪。如果执行else块,则会引发并捕获此类异常。如果
haveName()
返回false,则执行else块。因此,要打印堆栈跟踪,haveName()必须返回false。您还没有发布它的代码,所以我们不知道它何时返回false,何时返回true。阅读它的代码,并进行逻辑推理。尽管其中有某种有趣的讽刺,但名称
correctanmeexception
让我不寒而栗。听起来像是一个
一切都是好的异常
,通常的情况是一切都不好。。。然而,只是一句话:在调试的痛苦中,我认为偶尔在代码中抛出一个<代码>新的异常().PrrtStActhTrace[()/代码>任何地方是合法的,只是为了看看调用是从哪里来的(虽然通常,调试器告诉你,当你添加一个断点)的时候,我不太聪明,我该怎么做呢?像这样“if(haveName())return false;”
public boolean haveName(){return false;}