入力された数字を処理するシステムを作りたいと考えています。この時入力されたものが数字かどうかを判断し、”hoge”などの数字以外が入力されたとき-1を返して止まる例外処理を作りたいです。そのためtry_catch文を使いました。入力lineをint型にキャストし、エラーFormatExceptionを吐いたら-1を返して止まるコードを作成しました。コメントアウトされているvar line = "hoge";で試してみるとうまく作動したのですが、var line = 1;の時
「引数 1: は 'int' から 'System.ReadOnlySpan<char>' へ変換することはできません」
とエラーを吐かれ実行できません。これも引数による型違いのエラーなためFormatExceptionの例外処理で止まると考えたのですが、なぜ実行できないのでしょうか?対策を教えてください。
C#
1 //var line = Console.ReadLine(); 2 //var line = "hoge"; 3 var line = 1; 4 if (line == null) 5 { 6 Console.WriteLine(-1); 7 return; 8 } 9 try 10 { 11 int int_test = int.Parse(line);// 12 } 13 catch (FormatException) 14 { 15 Console.WriteLine(-1);//hogehoge対策 16 return; 17 }
回答2件
あなたの回答
tips
プレビュー