2016-04-21 71 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方法沒有正確返回表示數組中的值的對象數組。 –