C# 文件路径为空时出现异常(取消OpenFiledDalog时)

C# 文件路径为空时出现异常(取消OpenFiledDalog时),c#,exception,openfiledialog,C#,Exception,Openfiledialog,代码如下: OpenFileDialog openFileDialog1 = new OpenFileDialog(); DialogResult result = openFileDialog1.ShowDialog(); // Show the dialog. if (result == DialogResult.OK) // Test result. { string file = openFileDialog1.F

代码如下:

OpenFileDialog openFileDialog1 = new OpenFileDialog();

        DialogResult result = openFileDialog1.ShowDialog(); // Show the dialog.
        if (result == DialogResult.OK) // Test result.
        {
            string file = openFileDialog1.FileName;

        }
        else { MessageBox.Show("Error."); }

//later on..
        DataTable lertableEC0 = new DataTable();
        lertableEC0.ReadXml(openFileDialog1.FileName);
最后出现了错误,一切正常,xml导入,等等,只有在打开对话框中取消时,我才能得到异常,有什么提示吗

(有一个类似的问题,但答案对我来说仍然很困惑

  return null;    

当您取消对话框时,

对我不起作用,因为未选择任何内容

要处理此问题(例如,如果未选择任何文件,则不执行任何操作),请确保仅在“如果确定对话框结果”逻辑中使用文件名


取消对话框时,将显示“
(空字符串),因为未选择任何内容

要处理此问题(例如,如果未选择任何文件,则不执行任何操作),请确保仅在“如果确定对话框结果”逻辑中使用文件名


取消对话框时,将显示“
(空字符串),因为未选择任何内容

要处理此问题(例如,如果未选择任何文件,则不执行任何操作),请确保仅在“如果确定对话框结果”逻辑中使用文件名


取消对话框时,将显示“
(空字符串),因为未选择任何内容

要处理此问题(例如,如果未选择任何文件,则不执行任何操作),请确保仅在“如果确定对话框结果”逻辑中使用文件名

由于单击“取消”按钮时不会设置文件名,因此空字符串将传递给引发异常的
ReadXml()
函数。因此,您必须将函数移到“确定单击”条件内

由于单击“取消”按钮时不会设置文件名,因此空字符串将传递给引发异常的
ReadXml()
函数。因此,您必须将函数移到“确定单击”条件内

由于单击“取消”按钮时不会设置文件名,因此空字符串将传递给引发异常的
ReadXml()
函数。因此,您必须将函数移到“确定单击”条件内


由于单击“取消”按钮时不会设置文件名,因此空字符串将传递给
ReadXml()
抛出异常的函数。因此您必须将函数移到OK click条件中

正是这样,将所有文件处理移到测试结果中解决了它,非常感谢@m-hasanIt正是这样,将所有文件处理移到测试结果中解决了它,非常感谢@m-hasanIt正是这样首先,移动测试结果中的所有文件处理解决了问题,非常感谢@m-Hasani正是这样,移动测试结果中的所有文件处理解决了问题,非常感谢@m-hasan
DataTable lertableEC0 = new DataTable();
DialogResult result = openFileDialog1.ShowDialog(); // Show the dialog.
if (result == DialogResult.OK) {
    // -> openFileDialog1.FileName is not empy here
    lertableEC0.ReadXml(openFileDialog1.FileName);
} else {
    // -> openFileDialog1.FileName is empty here
    MessageBox.Show("Error.");
}
// -> openFileDialog1.FileName may or may not be empty here
  if (result == DialogResult.OK) // Test result.
  {
        string file = openFileDialog1.FileName;

        DataTable lertableEC0 = new DataTable();
        lertableEC0.ReadXml(openFileDialog1.FileName);       
  }
 else { 
       MessageBox.Show("Error.");
  }