У меня есть приложение, которое назначает список значений для DataGridView. Это делается внутри блока Try catch. Иногда возникает проблема с процедурой with, которая создает этот список (также в блоке try catch), и это вызывает ошибку при выполнении назначения. Похоже, что исключение никогда не перехватывается блоком, выполняющим присваивание, и приложение останавливается.
Обрабатывается ли исключение внутри вызова присваивания, чтобы оно не распространялось на блок перехвата?
Исключение, создаваемое во всплывающих состояниях «В DataGridView произошло следующее исключение: System.IndexOutOfrangeException: у индекса 1 нет значения в System. Windows .Forms.dataGridViewDataConnection.GetError (Int32 rowIndex) Чтобы заменить это диалоговое окно по умолчанию, пожалуйста, обработать событие DataError "
Код в основном
public void SetupRunners(EventDetails _eventDetails)
{
try
{
RunnerAssociates.Clear();
RunnerAssociates = null;
RunnerAssociates = createRunnerAssociateList(selectedEventDetails);
runnerAssociatesDataGridView.DataSource = RunnerAssociates;
runnerAssociatesDataGridView.DataMember = string.Empty;
}
catch (Exception ex)
{
NZRB_Global.Utils.LogException(methodName, ex);
}
}
private List<Runner_Associate> createRunnerAssociateList(EventDetails _meetAndRace) //NZRB_Global.MeetAndRace _meetAndRace)
{
const string methodName = "createRunnerAssociateList";
List<Runner_Associate> lra = new List<Runner_Associate>();
try
{
if (null != _meetAndRace)
{
_meetAndRace.UpdateAllProfiles();
foreach (RunnerDetail rd in _meetAndRace.runners.runnerList)
{
Runner_Associate ra = new Runner_Associate();
ra.Number = rd.number;
ra.RunnerName = rd.name;
RunnerProfile profile = rd.GetRunnerProfile();
if ((rbJockeyDriver.Checked) || (rbCustom.Checked))
{
ra.AssociateName = rd.person;
}
else if (profile != null)
{
if (rbTrainers.Checked)
{
ra.AssociateName = profile.trainer;
}
else if (rbOwners.Checked)
{
ra.AssociateName = profile.owners;
}
}
lra.Add(ra);
}
}
}
catch (Exception ex)
{
NZRB_Global.Utils.LogException(methodName, ex);
}
return lra;
}