[英]How can I let my function crash?
在某些情况下,我希望我的功能只是崩溃,我的应用程序停止执行:
public void foo() {
if(lifeIsWorthLiving) {
/*code ...*/
}
else {
/* log the problem, throw an exception and die */
}
}
现在如果我添加throw Exception("lifeIsWorthLiving = false !!!");
然后我需要在函数定义中添加throws Exception
,然后我必须处理这个我调用foo()
。 我不想那样做。 我怎样才能做到这一点?
您可以抛出未选中的RuntimeException
或其子类。 根据JLS§11.2 :
11.2编译时检查异常
Java编程语言的编译器在编译时检查程序是否包含已检查异常的处理程序,方法是分析执行方法或构造函数可能导致的检查异常。 对于每个可能结果的已检查异常,方法或构造函数的
throws
子句必须提及该异常的类或该异常的类的一个超类。
...
未经检查的异常类是RuntimeException
类及其子类,以及类Error
及其子类。 所有其他异常类都是已检查的异常类。
抛出RuntimeException
或者Error
,取决于问题的性质。 两者都不需要在throws
声明。 最后一种方法是调用System#exit()
。
throw new RuntimeException("lifeIsWorthLiving = false !!!");
您可以像其他人建议的那样抛出RuntimeException
,或者更好的是,抛出一个错误 - Error
不会被处理任何类型的Exception
的catch
块意外捕获和处理。 这假设您可以使用Throwable
“杀死”您的程序,而不是正常关闭它。
抛出RuntimeException 。 如果你不愿意,你不需要在任何地方处理它。
你可以添加throw Exception("lifeIsWorthLiving = false !!!");
在try catch块中
要不就
void foo(){
throw new Error(); // in place of exception
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.