短いsNumにはintnumの大きな範囲値が割り当てられ、変換が失敗するため、このコードは単に例外をスローします。ともかく。有効なshortの範囲が入力されるまでリクエストをループしたい。
static void Main()
{
int num = 40000;
short sNum = 0;
try
{
sNum = Convert.ToInt16(num);
}
catch (OverflowException ex)
{
// Request for input until no exception thrown.
Console.WriteLine(ex.Message);
sNum = Convert.ToInt16(Console.ReadLine());
}
Console.WriteLine("output is {0}",sNum);
Console.ReadLine();
}
ありがとうございました。