0

我在运行时遇到了一个我无法弄清楚的奇怪错误。当我在 Visual Studio 中时,在我运行程序之前不会引发错误。但是,当我运行它时,我收到一条错误消息,指出类型上有未处理的异常。这与将字段 [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

您可以将其包装在 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 回答
1

如果您不确定该值是否为整数,请int.TryParse改用:

int idCheck;

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

这会通过尝试转换来防止运行时异常,false如果无法转换则返回。

于 2015-03-04T23:43:45.717 回答