さまざまなマシンから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 { }
}
わかりました。JohnSaundersの投稿に基づいて解決策を見つけました。
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ブロックが現在どのように見えるかについて投稿を編集しました。