我正在使用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. 返回java.util.Optional或拋出(Checked/Unchecked)異常
- 6. 返回null或拋出異常一次
- 7. GWT - 拋出異常VS返回null
- 8. 返回NaN還是拋出異常?
- 9. 拋出異常和返回類型
- 10. 只返回沒有異常拋出
- 11. servlet request.getParameterValues(fieldName)返回null並拋出異常
- 12. 拋出異常並從函數返回結果
- 13. 拋出異常返回內存異常錯誤
- 14. ASP.NET WebService在拋出異常時返回異常字符
- 15. 安全並拋出異常
- 16. 用switch語句拋出異常與返回空值
- 17. 返回非空值後拋出空引用異常
- 18. 拋出異常而不是返回默認值
- 19. 哪個更好,拋出異常或返回非零值?
- 20. .NET返回值與拋出異常設計問題
- 21. pywinauto is_visible拋出異常,而不是返回true/false值
- 22. Java Mock拋出一個異常,然後返回一個值?
- 23. 魔術異常拋出拋出異常
- 24. 異常拋出異常
- 25. 拋出異常
- 26. 拋出異常
- 27. 拋出異常
- 28. 異常拋出
- 29. HttpURLConnection拋出異常
- 30. PerformanceCounter拋出異常
那就是我想的。儘管如此,我認爲可能會有一些竅門。 – mark
一旦拋出異常,你的程序就會停止運行,所以我不可能同時執行這兩個操作。我想知道在'try'塊中是否有return語句,程序是否仍然通過'final'塊,因爲如果你在try塊中返回一個值,並且在Final塊中放入一個Exception Exception,你會已經完成了這兩個步驟。 –
@ Karel-Jan錯誤:不,在Java中,您的程序會執行** DEFINITELY NOT **一旦拋出異常就停止運行。您對Java異常如何工作感到困惑,顯然還沒有完成任何多線程Java編程。當另一個線程中發生未經檢查的異常時,您可以讓很多線程愉快地繼續工作。在很多情況下,死亡線程會自動重新啓動(最着名的是某些OS/JVM上的Swing EDT:如果EDT死亡,將重新啓動一個新的EDT)。 – SyntaxT3rr0r