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

Eli*_*iel 19 java exception custom-errors

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

这就是我想要做的:

if(some_condition) {
    foobar();
}
else {
    // raise an error
}
Run Code Online (Sandbox Code Playgroud)

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

提前致谢!


感谢大家!如果你将来读这篇文章,这里是瘦的:

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

  2. 例外是指您可能想要捕获的错误.

这是我的"修复"代码:

if(some_condition) {
    foobar();
}
else {
    throw new RuntimeError("Bad.");
}
Run Code Online (Sandbox Code Playgroud)

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

谢谢大家!

G. *_*ies 31

干得好:

throw new java.lang.Error("this is very bad");
Run Code Online (Sandbox Code Playgroud)

更加惯用于抛出Exception的子类.特别是RuntimeException是未选中的(例如,方法不需要声明它们可能会抛出它).(嗯,错误也是如此,但它应该被保留用于不可恢复的事情).

throw new java.lang.RuntimeException("this is not quite as bad");
Run Code Online (Sandbox Code Playgroud)

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


Tim*_*sen 6

尝试抛出异常:

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