2016-04-21 148 views
0

我刚在我的桌面上安装了visual studio,并且正在创建一个测试解决方案来学习我的解决方法。我创建了一个包含两个项目的解决方案,一个是CSV阅读器的IDataReader实现,另一个是窗体应用程序,用于在datagridview中显示阅读器。视觉工作室2015不停止在代码的异常行

阅读器按预期生成异常,但不会停止引发异常的代码行。读者正确地实例化。但是,当我将它加载到数据表中时,它会在Table.Load(Reader)上引发异常。

发生在阅读器内某处的异常,但它不会停止发生异常的地方。

我的DataReader看起来是这样的:

public class DelimitedReader : IDataReader{....lots of code here...} 

我的形式访问Delimitedreader这样的:

private void openFileDialog1_FileOk(object sender, CancelEventArgs e) 
    { 
     try 
     { 
      DelimitedReader Reader = new DelimitedReader(openFileDialog1.FileName); 
      DataTable Table = new DataTable("Data"); 

      Table.Load(Reader);<<<<<<<<Exception stops on this line of code 
      Grid.DataSource = Table; 
     } 
     catch(Exception ex) 
     { 
      MessageBox.Show(ex.Message); 
     } 
    } 

我:

  • 在“异常打开了CLR例外设置窗口“
  • 确保”调试信息“被设置为全部两个项目
  • 转身对XML文档两个,我认为这是不必要的

我缺少什么?

回答

0

我的猜测是你的读者会抛出一个新的异常。这会导致VS停止在更高级别的异常处理程序中。

+0

这是正确的。由于从IDataReader加载数据表时需要格式错误的SchemaTable,异常来自DataReader内部。 我纠正的另一个错误是GetValues方法没有正确返回表示数组中的值的对象数组。 –