如何在Java中引发错误?
我所做的所有Google搜索似乎都集中在“捕捉”错误。如果满足某些条件,我希望能够提出自己的意见。我尝试使用Error()类及其子类,但Eclipse无法识别它们。如何在Java中引发错误?
这就是我想做的事:
if(some_condition) {
foobar();
}
else {
// raise an error
}
愚蠢的问题,我知道,但我做我的谷歌搜索和我的身影有人在那里将能够帮助我。
在此先感谢!
谢谢大家!如果您在未来读这篇文章,这里的瘦:
错误在Java中参考的问题,你不应该试图捕捉
例外是指,你可能想赶上错误。
这里是我的“固定”代码:
if(some_condition {
foobar();
}
else {
throw new RuntimeError("Bad.");
}
我以前RuntimeError()
因为,作为一个答案中指出,我没有宣布我事先抛出一个错误,并自我依赖于一个条件,这非常有用。
谢谢大家!
在这里你去:
throw new java.lang.Error("this is very bad");
更地道抛出异常的子类。特别是RuntimeException未被选中(例如,方法不需要声明它们可能会抛出它)。 (好吧,错误也是,但它应该被保留用于不可恢复的事情)。
throw new java.lang.RuntimeException("this is not quite as bad");
注意:您实际上并不需要在此刻构建它们。你可以扔预构建的。但构建它们的一件好事是,它们记录它们所在的代码行以及构建时发生的完整调用堆栈,因此,在创建新调用时,如果构建一个新的调用堆栈,它会向其注入非常有用的诊断信息。
太棒了!我会给你“接受”的答案thingy,但是@Tim Biegeleison的s/o,他也非常有帮助:^) –
尝试抛出一个异常:
public void yourMethod() throws Exception {
if (some_condition) {
foobar();
}
else {
throw new Exception("Something bad happened.");
}
}
现在我觉得哑巴了。所以异常是java中的错误(来自python背景)?这解释了很多。谢啦。 –
如果你最终编写好的Java代码,这并不愚蠢。 –
后续行动(对不起,如果我滥用这个),错误和异常之间的区别是什么? –
Java中的错误称为异常(See this)。
if(some_condition){
foobar();
} else {
throw new Exception();
}
形式上,错误是从Throwable扩展的任何类。
Throwable类是Java语言中的所有错误和异常的超类,它们是 。 Java虚拟机仅引发该类的实例对象(或其某个子类),或者Java throw语句可引发 。同样,只有这个类或其子类中的一个可以是catch子句中的参数类型。对于 编译时检查异常的目的,Throwable和任何不属于 RuntimeException或Error的子类的Throwable的任何子类都被视为检查异常。
...
https://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html
你试图提高在仅控制台错误?或者你是否试图向用户显示错误?
在这种情况下,您可以使用JOptionPane创建错误对话框。
控制台只,但谢谢你的提示! –
@eli_dink当然:) –
@eli_dink看看这个错误与异常:https://stackoverflow.com/questions/5813614/what-is-difference-between-errors-and-exceptions –
没有必要感到愚蠢的:-) 您可以创建自己的异常,例如,
public class UnknownUnitException extends Exception{
private String message = null;
public UnknownUnitException() {
super();
}
public UnknownUnitException(String message) {
super(message);
this.message = message;
}
public UnknownUnitException(Throwable cause) {
super(cause);
}
@Override
public String toString() {
return message;
}
@Override
public String getMessage() {
return message;
}
}
http://stackoverflow.com/questions/1754315/how -to-create-custom-exceptions-in-java – Jayan
请将您的发现发布为答案并将其标记为正确,以便人们能够轻松地分辨出问题与答案之间的差异。 –
它应该是: throw new RuntimeException(“Bad。”); –