0
A
回答
1
任何使用拋出異常的方法都應該處理,重新拋出或重新聲明(如果它是檢查了異常),它們可以爲下一級選擇如何處理它。
在Scanner
中,如果採取nextDouble()
方法,則會根據掃描儀的狀態引發各種異常。你必須關心它。
但護理的方式取決於您的程序邏輯。
這就是說,在Scanner
大多數的例外是RuntimeException
,這意味着你不需要明確捕捉它們在你的代碼。假設你在main
中,如果發生異常,它將由JVM在頂層處理。我這種情況下,你的程序將退出一個錯誤代碼和一個堆棧跟蹤。
在Scanner
這是檢查而且你必須以某種方式處理唯一的例外,就是當你構建從文件Scanner
。 IOException
和FileNotFoundException
不能被忽略。
例外情況(濫用)使用的例子,當你閱讀double
,你可能會做的事:
public static void testScanDoubleWithException() {
Scanner sin = new Scanner(System.in);
System.out.println("Enter a double: ");
while (true) {
try {
double d = sin.nextDouble(); // Throw if not a double
System.out.println("Read double value: "+d);
break;
}
catch (InputMismatchException e) {
System.out.println("Invalid double, shoot again:");
sin.nextLine(); // consume bad input
}
}
sin.close();
}
但Scanner
類提供了更簡單/明確的方式:
public static void testScanDouble() {
Scanner sin = new Scanner(System.in);
System.out.println("Enter a double: ");
while (!sin.hasNextDouble()) {
System.out.println("Invalid double, shoot again:");
sin.nextLine();
}
double d = sin.nextDouble();
System.out.println("Read double value: "+d);
sin.close();
}
0
Java支持異常處理,因此我們可以避免在應用程序中出現不需要的行爲。在任何交易中,如果我們預見到任何不需要的行爲,我們都應該處理異常。掃描器類可以基於所使用的操作類型拋出任何異常,例如Runtime,illegalArgument,numberformat等。因此,作爲一種良好的習慣,我們應該總是單獨捕獲所有特定的異常,並且執行得更好。
0
是的。例如,如果您使用Scanner對象來讀取文件,則應該處理FileNotFoundException,否則會出現錯誤。但是,如果您只是使用System.in作爲輸入,則不會顯示錯誤。但是,與此同時,您應該檢查輸入是否符合用戶的要求,因此總是建議使用異常處理。
相關問題
- 1. 異常處理:多次處理異常
- 2. 如何處理異常處理代碼中的異常?
- 3. php異常處理異常
- 4. 異常處理
- 5. 異常處理
- 6. 異常處理
- 7. 異常處理
- 8. 處理異常
- 9. 異常處理
- 10. 處理異常
- 11. 異常處理
- 12. 處理異常
- 13. 異常處理
- 14. 處理異常
- 15. 處理異常
- 16. 異常處理
- 17. 異常處理
- 18. 異常處理
- 19. 異常處理
- 20. 處理異常
- 21. 異常處理
- 22. 處理異常
- 23. 異常處理?
- 24. 異常處理
- 25. Iterable中的異常處理
- 26. MFC中的異常處理
- 27. MVVMLight中的異常處理
- 28. postgres中的異常處理
- 29. Powershell中的異常處理
- 30. ThreadPools中的異常處理
你到目前爲止嘗試過什麼?請張貼您遇到問題的代碼片段。 – 2015-04-04 08:39:25
@Sameera,你想做什麼?請分享一些例子 – Neo 2015-04-04 08:47:24