格式异常是未处理的错误

时间:2015-03-04 23:35:59

标签: c# string exception unhandled

我在运行中遇到一个奇怪的错误,我无法弄清楚。当我在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();

2 个答案:

答案 0 :(得分:1)

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

int idCheck;

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

这可以通过尝试转换来阻止运行时异常,如果不能这样做则返回false

答案 1 :(得分: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]);   
     }