我寫了一個程式,只接受偶數,如果它不是偶數,當我輸入偶數時,代碼會列印它,但是當我輸入奇數時,什么都沒有發生
每當我嘗試添加else紅線覆寫整個街區
Scanner input = new Scanner (System.in);
System.out.println("Please enter number : ");
int number = input.nextInt();
try{
if(number%2 == 0){
System.out.println(number);
}
}
catch(Exception e){
System.out.println("this input is not an even number");
e.printStackTrace();
}
uj5u.com熱心網友回復:
這是使用Exception. 您可以使用 anException來表示該值是奇數,例如
try {
if (number % 2 == 0) {
System.out.println(number);
} else {
throw new Exception(String.format("Input %d is not even.", number));
}
} catch (Exception e) {
System.out.println("this input is not an even number");
e.printStackTrace();
}
但是,您仍然需要一個else. 這將是一個更合適的地方來處理奇數(沒有Exception必要)。喜歡,
if (number % 2 == 0) {
System.out.println(number);
} else {
System.out.printf("this input %d is not an even number%n", number);
}
uj5u.com熱心網友回復:
正如您所猜測的,邏輯應該在一個else塊中,而不是在 catch 塊中:
try {
if (number % 2 == 0) {
System.out.println(number);
} else {
System.out.println("this input is not an even number");
}
} catch(Exception e) {
e.printStackTrace(); // Or some other more robust exception handling
}
uj5u.com熱心網友回復:
您試圖捕獲拋出的例外。但是你更應該拋出一個例外。(也許以后會抓住它。)
if (number % 2 != 0) {
throw new IllegalArgumentException("Not an even number: " number);
}
System.out.println(number);
有兩個 RuntimeExceptions 最適合:
- IllegalArgumentException 當傳入的資料錯誤時;
- IllegalStateException 當狀態(計算)錯誤時。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/386780.html
