如何在 java 中的 if-else 函数中引发错误

新手上路,请多包涵

我所做的所有谷歌搜索似乎都集中在“捕捉”错误上。如果满足某些条件,我希望能够提高自己的水平。我尝试使用 Error() 类及其子类,但 Eclipse 无法识别它们。

这就是我想要做的:

 if(some_condition) {
    foobar();
}
else {
    // raise an error
}

愚蠢的问题,我知道,但我已经完成了我的谷歌搜索,我认为有人可以帮助我。

提前致谢!


感谢大家!如果您将来要阅读本文,请看这里的瘦身:

  1. Java 中的错误指的是您不应尝试捕获的问题

  2. 异常是指您可能想要捕获的错误。

这是我的“固定”代码:

 if(some_condition) {
    foobar();
}
else {
    throw new RuntimeError("Bad.");
}

我使用 RuntimeError() 因为,正如一个答案所指出的,我不必事先声明我正在抛出一个错误,而且由于我依赖于一个条件,所以这非常有用。

谢谢大家!

原文由 Eli Dinkelspiel 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 420
2 个回答

干得好:

 throw new java.lang.Error("this is very bad");

更习惯于抛出 Exception 的子类。特别是 RuntimeException 是未检查的(例如,方法不需要声明它们可能会抛出它)。 (好吧,错误也是如此,但它应该保留给不可恢复的东西)。

 throw new java.lang.RuntimeException("this is not quite as bad");

注意:您实际上不必在那一刻正确构建它们。你可以扔预制的。但是构建它们的一个好处是它们记录了它们所在的代码行以及构建时发生的完整调用堆栈,因此当你抛出它时构建一个新的调用堆栈确实会注入非常有用的诊断信息.

原文由 G. Sylvie Davies 发布,翻译遵循 CC BY-SA 3.0 许可协议

尝试抛出异常:

 public void yourMethod() throws Exception {
    if (some_condition) {
        foobar();
    }
    else {
        throw new Exception("Something bad happened.");
    }
}

原文由 Tim Biegeleisen 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题