0

実行時に、理解できない奇妙なエラーが発生します。Visual Studio を使用している場合、プログラムを実行するまでエラーはスローされません。ただし、実行すると、タイプに未処理の例外があったというエラーが表示されます。これは field[0] から int への変換に関するものですが、何かアドバイスはありますか?

empReader = new StreamReader(fileName);

                while (empReader.Peek() > -1)
                {
                    string line = empReader.ReadLine();   //read a line from the text file
                    string[] fields = line.Split(',');

                    int idCheck = Convert.ToInt32(fields[0]);

                    empTempId.Add(idCheck);
                }

                empReader.Close();
4

2 に答える 2

1

値が整数になるかどうかわからない場合は、int.TryParse代わりに次を使用します。

int idCheck;

if (int.TryParse(fields[0], out idCheck))
    empTempId.Add(idCheck);

falseこれにより、変換を試行し、変換できない場合は戻ることにより、実行時例外が防止されます。

于 2015-03-04T23:43:45.717 に答える
1

try/catch ブロックでラップできます。

try {
         int idCheck = Convert.ToInt32(fields[0]);
        Console.WriteLine("{0} --> {1}", fields[0], idCheck);
     }
catch (FormatException) {
        Console.WriteLine("{0}: Bad Format", fields[0]);
     }   
catch (OverflowException) {
        Console.WriteLine("{0}: Overflow", fields[0]);   
     }  
于 2015-03-04T23:50:53.497 に答える