在对象初始化时尝试Catch
本文关键字:Catch 对象 初始化 | 更新日期: 2023-09-27 18:09:44
我正在阅读包含日期文件的CSV文件我怎么能忽略异常时,试图转换为日期时间?
var csvlines = File.ReadAllLines(FilePath);
// skip the first line!
var csvLinesData = csvlines.Skip(1).Select(l => l.Split(Consts.Delimiter));
return csvLinesData.Select(data => new ReleaseNote
{
Version = data[0],
ReleaseDate = Convert.ToDateTime(data[1]) // Possible exception
}).ToList();
return csvLinesData.Select(data => {
DateTime d;
return new ReleaseNote
{
Version = data[0],
ReleaseDate = DateTime.TryParse(data[1], out d) ? d : DateTime.MinValue
}
}).ToList();
如果你的ReleaseDate属性是空的,你也可以用null
代替DateTime.MinValue
。
你应该使用DateTime。TryParse:
https://msdn.microsoft.com/en-us/library/ch92fbc1 (v = vs.110) . aspx
foreach (string dateString in dateStrings)
{
if (DateTime.TryParse(dateString, out dateValue))
Console.WriteLine(" Converted '{0}' to {1} ({2}).", dateString,
dateValue, dateValue.Kind);
else
Console.WriteLine(" Unable to parse '{0}'.", dateString);
}