java是否有库异常类,这意味着实际上不是错误,而是良好的终止?我知道我可以自己上课或使用null
,但希望知道。
编辑1
我想将异常对象用作方法的旧时尚返回代码,因此我需要与Win32 API中的ERROR_SUCCESS
代码等效的内容。
答案 0 :(得分:6)
Java中的异常仅用于异常终止。使用它们标记正确的终止应该被认为是非常糟糕的做法。
您可以使用返回值。
答案 1 :(得分:1)
我能想到的与“良好终止”信号最接近的不是异常,而是以System.exit(int)
为参数调用{{3}},向操作系统表明程序已结束成功。来自javadocs:
终止当前运行的Java虚拟机。该参数用作状态代码;按照惯例,非零状态代码表示异常终止。此方法在类Runtime中调用exit方法。此方法永远不会正常返回。
正如已经指出的那样,一个例外是不用于通知“良好终止”,恰恰相反。
答案 2 :(得分:1)
直接回答你的问题:不。没有标准的Java异常意味着“这是正常终止”。
如果您愿意,可以为您的应用程序定义一个自定义异常。
...使用“正常控制流”的例外违背了Java设计者的强烈建议,以及几乎普遍接受的Java“最佳实践”规则。这并不是说你永远不应该这样做。只是说这样做是合理的情况是非常罕见的。 (而且你需要采取特殊措施来避免代价非常低效的代码......)
无论如何,使用异常进行正常流量控制(几乎)总是一个可怕的想法,这解释了为什么从未创建过标准异常。 Java设计者显然不希望看起来鼓励这种做法。
答案 3 :(得分:0)
没有。例外意味着特殊情况。您应该构建程序流程,以便仅在特殊情况下抛出异常,而不是在正常流程上抛出异常。
因此,如果您想要返回“成功”:返回true
或某些枚举Result.SUCCESS
。
答案 4 :(得分:0)
例外意味着表示出现了问题。不同的例外描述了出错的不同项目,因此如果不处理则会导致程序终止。成功完成的事情也不例外。
我认为您需要做的是返回特定值,否则,让您的应用程序触发某种event
。在这种情况下,建议抛出异常(至少对我来说)。
答案 5 :(得分:0)
取决于您定义为"良好终止"我想 - 这是一个安全例外,因为它阻止了某人攻击您的系统?这不是一个真正的错误,但这是一个你需要处理的异常情况。
一般情况下,例外情况仅用于特殊情况(代码中可能存在或可能不存在错误 - 可能意味着某些资源不可用,或安全检查失败等。)
如果您使用常规控制流的异常(即它们在正常的预期情况下被抛出),那么您可能做错了什么。
答案 6 :(得分:0)
也许你的意思是InterrupedException?当你想要优雅地终止线程时,抛出这个。
答案 7 :(得分:0)
正如其他一些回复所说,当没有例外时,什么都没有。
因此,在其余指令之后,您可以将代码中的“无异常”放入try块中。类似的东西:
try{
//code here
//code of no exception
}catch(Exception e){
//nothing or exception code
}
或者您可以通过执行扩展Exception
的类来创建自己的异常