Ich arbeite an einer Windows Forms-Anwendung in .NET 4.0. Da ich Daten an ein BindingSource
binde (an das ein ComboBox
gebunden ist), bekomme ich die folgende Ausnahme. Hinweis: Ich bekomme es nur, wenn ich den Debugger anhalten lasse, wenn Exceptions ausgelöst werden, entweder unbehandelt oder behandelt. So wird die Ausnahme irgendwo gefangen - trotzdem bin ich mir nicht sicher ob es OK ist geworfen zu werden.
ArgumentOutOfRangeException ist aufgetreten InvalidArgument = Wert von '0' ist nicht gültig für 'SelectedIndex'. Parametername: SelectedIndex
Ich setze die Eigenschaft SelectedIndex
nicht. Mein Code ist unten gezeigt. myData
ist ein IList
von Entitäten ( List
zur Laufzeit):
Ich kann nicht herausfinden, was ich falsch mache. Darüber hinaus verwirrt mich der Call Stack ein wenig (siehe unten). Das Windows Forms-Framework scheint in dem Kombinationsfeld SelectedIndex
zu setzen, das die Ausnahme verursacht. Kennt jemand eine Möglichkeit, dies loszuwerden?
Prost Matthias
%Vor% Wenn Sie den Debugger bitten, bei Exceptions zu stoppen, geschieht dies unabhängig davon, ob sie behandelt werden oder nicht. Dies führt zu Szenarien wie die, die Sie beobachtet haben:
Der Debugger stoppt bei einer Exception und verwirrt Sie, obwohl die Exception absolut gültig ist und vom umgebenden Code erwartet wird, weil sie die Exception behandelt, ohne zu sterben.
Um zusammenzufassen und Ihre Frage zu beantworten:
Nicht alle Ausnahmen, bei denen der Debugger stoppt, zeigen an, dass Sie etwas falsch machen oder dass ein Problem in Ihrem Code vorliegt.
Update (Credits gehen zu Mark):
Sie können dem Debugger mitteilen, dass er nur Ausnahmen abfangen soll, wenn Sie die Option "Nur meinen Code" aktivieren.
Sie können das auch versuchen. Bevor Sie die Combobox DataSource setzen, stellen Sie ihren BindingContext
ein %Vor%