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

2022-09-01 10:34:39

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

这就是我想做的:

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

愚蠢的问题,我知道,但我已经做了我的谷歌搜索,我发现有人能够帮助我。

提前致谢!


谢谢大家!如果您将来要阅读本文,那么以下是瘦子:

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

  2. 异常是指您可能希望捕获的错误。

这是我的“固定”代码:

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

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

谢谢大家!


答案 1

给你:

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

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

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

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


答案 2

尝试引发异常:

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