我怎樣才能通過 Try-Catch 的 Try 塊部分進行回圈,直到沒有捕獲任何例外?
例如,您將分母輸入為0(除以0),一個ArithmeticException被捕獲并處理,然后再次運行Try塊(要求您再次輸入分子和分母)。當什么都沒抓到時,程式就停止了。
import java.util.InputMismatchException;
import java.util.Scanner。
public class Activity {
public static void main(String[] args){
Fraction sampleFraction = new Fraction(8, 3)。)
Scanner scan = new Scanner(System.in)。
try {
System.out.print ("輸入分子:"/span>)。
sampleFraction.setNumerator(scan.nextInt())。
System.out.print ("Enter the denominator: ");
sampleFraction.setDenominator(scan.nextInt())。
System.out.println ("分數"/span> sampleFraction.getNumerator() "/"
sampleFraction.getDenominator() " 等于"/span> sampleFraction.toMixedNumber())。
}
catch (ArithmeticException e) {
System.out.println("你不能除以0!
")。)
}
catch (InputMismatchException e) {
System.out.println("請只輸入整數(整數)!
")。)
}
catch (Exception e) {
System.out.println("捕獲了一個意外的例外;請再試一次!"); catch(Exception e)
")。)
}
scan.close()。
}
}
這只是一個驅動/主類。如果需要,我可以提供Fraction類,雖然它只是處理所有計算和列印數學的方法。
uj5u.com熱心網友回復:
用一個回圈來包圍try/catch,并在try塊的末尾中斷:
while (true) {
try {
//做可能拋出例外的事情...。
//這就脫離了`while`回圈。。
break。
} catch (ArithmeticException e) {
/...
} catch(InputMismatchException e) {
// ... }
} /* etc */ }
//除非我們在catch塊中中斷/回傳,否則回圈將再次執行。 }
既然如此,最好首先避免出現例外。例外是用來處理例外事情的;如果你知道是什么原因導致了例外的拋出,你可能就能避免它。
例如,ArithmeticException在你試圖除以0時發生:與其依賴捕獲例外,不如先檢查分母是否為0:
int denominator = scan.nextInt()。
if (denominator == 0) {
System.out.println("你不能除以零!
")。)
繼續。
}
sampleFraction.setDenominator(denominator)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/320025.html
標籤:
