このコードは、ユーザーからの入力を受け付けます。試してください。キャッチは正しい値を返すことができません。
誤った入力を送信した後でユーザーに再試行させ、以下の例外をトリガーしたいと考えています。
例外の後にgetInputNumber()がトリガされ、ユーザーが数字として正しい入力を入力すると、正しい番号を返す戻り値がトリガされます。この戻りの後、それはこのように私はそれが正しい値を取得するために修正するだけでなく、彼ならば、ユーザは再度お試しできるように維持することができますどのように正しい数の値を削除し、のみ0
を返すFormatExceptionに戻り
正しい入力を逃した?
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