我正在使用NuGet的FileHelpers库2.9.9版。我在尝试使用AfterReadRecord事件时遇到了问题。
当我从此事件中抛出异常时,库不会捕获异常。我的理解是该库将从AfterReadRecord事件中捕获异常并从中构建ErrorInfo集合。相反,我得到了一个
“VS2013中的用户代码未处理异常”。 “一个 FileHelpersTest.exe中出现'System.Exception'类型的异常 但未在用户代码中处理“”附加信息:field1是 无效”。
我做错了什么?提前谢谢!
代码如下所示:
[DelimitedRecord(",")]
public class MyClass
{
public string Field1;
public string Field2;
public string Field3;
}
class Program
{
static void Main(string[] args)
{
FileHelperEngine<MyClass> engine = new FileHelperEngine<MyClass>();
engine.AfterReadRecord += new FileHelpers.Events.AfterReadHandler<MyClass>(engine_AfterReadRecord);
engine.ErrorMode = ErrorMode.SaveAndContinue;
MyClass[] records = engine.ReadString(",2,3");
ErrorInfo[] errors = engine.ErrorManager.Errors;
Console.WriteLine(errors.Count().ToString());
Console.Read();
}
static void engine_AfterReadRecord(EngineBase engine, FileHelpers.Events.AfterReadEventArgs<MyClass> e)
{
if (string.IsNullOrEmpty(e.Record.Field1))
throw new Exception("field1 is invalid");
} // I get the Exception unhandled warning here.
}
答案 0 :(得分:1)
你的程序适用于我。
您确定不仅仅是Visual Studio通知您抛出了异常。如果在Visual Studio之外运行应用程序,它是否按预期工作?
您可以从 Debug / Exceptions ... 菜单更改Visual Studio异常处理的行为。