Я пытаюсь читать XML-файлы с разных компьютеров, некоторые из этих файлов могут содержать элементы данных, которых нет у других. В настоящее время я использую блок Try-Catch для обработки этих ситуаций, но мне было интересно, есть ли лучший способ сделать это, какие-либо мысли?
XmlDataDocument xmlDatadoc = new XmlDataDocument();
xmlDatadoc.DataSet.ReadXml("MachineData.xml");
DataSet ds = new DataSet("AppData");
ds = xmlDatadoc.DataSet;
DataView dv = new DataView(ds.Tables[config.GlobalVars.Paths]);
foreach (DataRowView drv in dv)
{
try
{
cApp.TransferProtcol = drv["TransferProtocol"].ToString();
}
catch { }
try
{
cApp.RemoteServerPath = drv["RemoteServer"].ToString();
}
catch { }
}
Хорошо, я нашел решение, основанное на сообщении Джона Сондерса:
if(ds.Tables[0].Columns.Contains("TransferProtocol")
{
try
{
if (drv["TransferProtocol"].ToString().Length > 0)
{
cApp.TransferProtcol = drv["TransferProtocol"].ToString();
}
}
catch(Exception e)
{
Messagebox.Show(e.Message);
}
}
Я согласен с пустыми блоками Catch, но я заглушил их для целей тестирования. С тех пор я отредактировал свой пост о том, как теперь выглядит мой блок Try-Catch.