FileHelpers Library - 未捕获AfterReadRecord异常

时间:2014-04-29 00:23:58

标签: c# filehelpers

我正在使用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.
}

1 个答案:

答案 0 :(得分:1)

你的程序适用于我。

您确定不仅仅是Visual Studio通知您​​抛出了异常。如果在Visual Studio之外运行应用程序,它是否按预期工作?

您可以从 Debug / Exceptions ... 菜单更改Visual Studio异常处理的行为。