年齢の入力を求められたときに誰かが整数以外の文字を入力しようとした場合に、フォーマット例外をスローしようとしています。
Console.WriteLine("Your age:");
age = Int32.Parse(Console.ReadLine());
私はC#言語に慣れていないので、このインスタンスのtrycatchブロックを作成する際にヘルプを使用できます。
どうもありがとう。
年齢の入力を求められたときに誰かが整数以外の文字を入力しようとした場合に、フォーマット例外をスローしようとしています。
Console.WriteLine("Your age:");
age = Int32.Parse(Console.ReadLine());
私はC#言語に慣れていないので、このインスタンスのtrycatchブロックを作成する際にヘルプを使用できます。
どうもありがとう。
そのコードはすでに。をスローしFormatException
ます。あなたがそれをキャッチしたいという意味なら、あなたは書くことができます:
Console.WriteLine("Your age:");
string line = Console.ReadLine();
try
{
age = Int32.Parse(line);
}
catch (FormatException)
{
Console.WriteLine("{0} is not an integer", line);
// Return? Loop round? Whatever.
}
ただし、以下を使用することをお勧めint.TryParse
します。
Console.WriteLine("Your age:");
string line = Console.ReadLine();
if (!int.TryParse(line, out age))
{
Console.WriteLine("{0} is not an integer", line);
// Whatever
}
これにより、かなり例外的なユーザーエラーの場合の例外が回避されます。
これはどうですか:
Console.WriteLine("Your age:");
try
{
age = Int32.Parse(Console.ReadLine());
}
catch(FormatException e)
{
MessageBox.Show("You have entered non-numeric characters");
//Console.WriteLine("You have entered non-numeric characters");
}
そのコードのtrycatchブロックは必要ありません。
Console.WriteLine("Your age:");
int age;
if (!Integer.TryParse(Console.ReadLine(), out age))
{
throw new FormatException();
}