此代碼需要用戶輸入。嘗試,Catch無法返回正確的值
我希望用戶在發送錯誤的輸入並觸發下面的任何例外之後再試一次。
在異常發生後觸發getInputNumber()並且用戶以數字形式輸入正確的輸入後,觸發返回正確的數字。
這個返回後,返回到由此出現FormatException刪除正確的數值,只有我怎樣才能解決它得到正確的值,但還留着讓他的用戶再次嘗試返回0。
錯過了正確的輸入?
private static int getInputNumber()
{
int number = 0;
try
{
number = Convert.ToInt32(Console.ReadLine());
}
catch (Exception ex)
{
if (ex is FormatException)
{
Console.Clear();
Console.WriteLine("Wrong format! \nTry numbers instead.");
getInputNumber();
}
else if (ex is OverflowException)
{
Console.Clear();
Console.WriteLine("The number you entered is too large.\nTry a number between 1 and 2,147,483,647");
getInputNumber();
}
}
return number;
}
誰調用了'getInputNumber'方法?你是否調試過代碼來確定究竟發生了什麼? –
您需要在catch塊中編寫'number = getInputNumber();'。 –
太棒了! @ChetanRanpariya,你回答我的意思是爲我修復它。 – jon