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