我正在使用API,声称如果成功则返回true;如果失败,则返回false。但是,它也宣称如果失败,会抛出不同的例外。它如何返回false并抛出异常?返回值并抛出异常?
19
A
回答
25
无法同时抛出异常并从单个函数调用返回值。
如果出现错误,它可能会返回false
,但如果输入无效则抛出异常。
编辑:PaulPRO贴指出这是技术上可能导致异常在不同的线程中被抛出,而在当前的返回值(现已删除)回答。我认为这值得注意,即使这不是你应该看到的。
14
你可以抛出一个异常有一个(在这种情况下,布尔)值:
public class ValueException extends Exception {
final boolean value;
public ValueException(boolean value, String message) {
super(message);
this.value = value;
}
public boolean getValue() {
return value;
}
}
0
虽然可以编写代码以这样的方式,一个例外,一个值可以推导从一个函数调用(见上面的帖子),它不应该用正确的编码来完成。
我很想看看这个API的文档链接。 API应该优先考虑清晰度。抛出异常并返回值会留下返回的值是否安全使用或者是否无效的问题。
请记住,try/catch块是处理异常的OTHER方法。他们不会将例外传递给调用方法,而是以开发人员认为合适的方式在内部处理它。
如果出于调试目的,如果出现异常情况,您需要查看结果值,那么波希米亚的想法很有效。
相关问题
- 1. 返回错误并抛出异常
- 2. 抛出异常或返回值
- 3. 抛出异常或返回值
- 4. 抛出异常后返回
- 5. 如果方法抛出异常,则返回值返回值
- 6. 返回一个布尔值并重新抛出一个异常
- 7. 返回null或抛出异常一次
- 8. 抛出异常(C#)返回错误号
- 9. 只返回没有异常抛出
- 10. Python:抛出异常或返回无?
- 11. 抛出异常和返回类型
- 12. 从servlet返回JSONObject抛出异常
- 13. 抛出一个异常或返回null
- 14. 返回null或抛出异常
- 15. GWT - 抛出异常VS返回null
- 16. 返回java.util.Optional或抛出(Checked/Unchecked)异常
- 17. 返回NaN还是抛出异常?
- 18. 抛出异常并捕获异常?
- 19. servlet request.getParameterValues(fieldName)返回null并抛出异常
- 20. 抛出异常并从函数返回结果
- 21. ASP.NET WebService在抛出异常时返回异常字符
- 22. 抛出异常返回内存异常错误
- 23. @Contract并抛出异常
- 24. 安全并抛出异常
- 25. 用switch语句抛出异常与返回空值
- 26. pywinauto is_visible抛出异常,而不是返回true/false值
- 27. 抛出异常而不是返回默认值
- 28. 返回值的静态方法是否会抛出异常?
- 29. 哪个更好,抛出异常或返回非零值?
- 30. Java Mock抛出一个异常,然后返回一个值?
那就是我想的。尽管如此,我认为可能会有一些窍门。 – mark
一旦抛出异常,你的程序就会停止运行,所以我不可能同时执行这两个操作。我想知道在'try'块中是否有return语句,程序是否仍然通过'final'块,因为如果你在try块中返回一个值,并且在Final块中放入一个Exception Exception,你会已经完成了这两个步骤。 –
@ Karel-Jan错误:不,在Java中,您的程序会执行** DEFINITELY NOT **一旦抛出异常就停止运行。您对Java异常如何工作感到困惑,显然还没有完成任何多线程Java编程。当另一个线程中发生未经检查的异常时,您可以让很多线程愉快地继续工作。在很多情况下,死亡线程会自动重新启动(最着名的是某些OS/JVM上的Swing EDT:如果EDT死亡,将重新启动一个新的EDT)。 – SyntaxT3rr0r