2014-04-29 71 views
0

我正在使用NuGet的FileHelpers库2.9.9版。我在尝试使用AfterReadRecord事件时遇到了问题。FileHelpers Library - AfterReadRecord异常未被捕获

当我从这个事件抛出一个异常时,这个异常没有被库捕获。我的理解是,库将从AfterReadRecord事件中捕获异常并从中构建ErrorInfo集合。相反,我得到一个

VS2013中出现“用户代码未处理的异常”警告。 “在FileHelpersTest.exe 中发生了 类型'System.Exception'的异常,但未在用户代码”“中处理其他信息:field1为 invalid”。

我在做什么错?提前致谢!

的代码看起来是这样的:

[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

你的节目,我工作得很好。

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

您可以从调试/例外...菜单中更改Visual Studio异常处理的行为。

+0

这正是发生的情况,谢谢。 – nivek