2016-04-21 2 views
0

Ich habe gerade Visual Studio auf meinem Desktop installiert und erstellt eine Testlösung, um mich herum zu lernen. Ich habe eine Lösung mit 2 Projekten erstellt, eine IDataReader-Implementierung eines CSV-Readers und eine weitere Windows-Formular-App, um den Reader in einer Datagrid-Ansicht anzuzeigen.Visual Studio 2015 nicht auf Ausnahmezeile des Codes stoppen

Der Reader generiert eine Ausnahme wie erwartet, aber es stoppt nicht auf der Codezeile, die die Ausnahme ausgelöst hat. Der Leser wird korrekt instanziiert. Aber wenn ich gehe, um es in eine Datentabelle zu laden, wirft es eine Ausnahme auf Table.Load (Leser)

Die Ausnahme tritt irgendwo innerhalb des Lesers auf, aber es stoppt nicht, wo die Ausnahme tatsächlich auftritt.

My Datareader sieht wie folgt aus:

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

Meine Form greift auf die Delimitedreader wie folgt aus:

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); 
     } 
    } 

ich habe:

  • schaltete die CLR Ausnahmen in der „Exception Einstellungsfenster "
  • sicher gestellt" Debug Info " eingestellt wurde auf beiden Projekte Voll
  • auf XML-Dokumentation Gedreht für beide, die ich denke, ist nicht notwendig

Was bin ich?

Antwort

0

Meine Vermutung ist, dass Ihr Leser eine neue Ausnahme wirft. Dies führt dazu, dass VS auf einer Ausnahmebehandlungsroutine höherer Ebene stoppt.

+0

Das ist richtig. Die Exception kam irgendwo aus dem DataReader, weil die SchemaTable fehlerhaft ist, wenn eine Datentabelle von einem IDataReader geladen wird. Der andere Fehler, den ich korrigierte, war die GetValues-Methode, die das Array der Objekte, die die Werte im Array repräsentierten, nicht korrekt zurückgab. –