我有以下java代碼:
System.out.print("\fPlease Enter an integer: ");
while(!validInt){
try{
number = kb.nextInt();
validInt = true;
}catch(InputMismatchException e){
System.out.print("Pretty please enter an int: ");
System.out.print(e.getMessage());
kb.nextLine();
continue;
)
kb.nextLine();
}
如何設定 e.getMessage() 以便 System.out.println(e.getMessage()) 將列印“Pretty please enter an int:”
uj5u.com熱心網友回復:
您僅在創建例外時設定訊息,它是建構式的引數。在您的情況下,如果 InputMismatchException 是這樣創建的,那就太好了:
tnrow new InputMismatchException("請輸入一個整數:")
由于您可能沒有創建 InputMismatchException,因此您無法設定它的訊息,但是在 catch 中您可以執行以下操作:
catch(InputMismatchException ime){
throw new IllegalArgumentException("Pretty please enter an int: ");
}
然后,您上面的某個人可以捕獲該例外,并會收到相應的錯誤訊息。
這顯然有點尷尬,這就是為什么通常不以這種方式使用它的原因。
筆記:
您通常不應該重復使用 java 例外,而是創建自己的例外。這很煩人,我幾乎總是重復使用 IllegalArgumentException 或 IllegalStateException 因為它們是很好的、可重復使用的例外,并且描述了您希望在上面討論的“Catch and rethrow”例外的一般代碼中拋出的大多數原因。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/473232.html
上一篇:如何在ToDictionaryC#中使用TryCatch陳述句?
下一篇:在C#中將所有例外發送到服務器
