2012-04-26 68 views
0

好的,这里是我正在处理的代码。我试图得到一个例外,如果他们没有在盒子中保存它会弹出一个例外,不让他们继续前进,直到把东西放在那里。现在我知道,当我运行我的程序,然后点击保存按钮,它告诉我这如何输入和例外

ArgumentException的是未处理的

是什么意思。我知道它说空路径名称是不合法的。但是路径是用户想要的。我一直在搞这个,并试图找出要做什么,但仍有点困惑。那么尝试去实现它的最好方法是什么?我是否必须创建一个类才能工作,或者只需将其添加到我的代码中。我用另一个部分修正了其他部分,但是我无法在这部分工作,或者我可能把它放在了错误的地方。

private void Save_Click(object sender, EventArgs e) 
{ 
    string path = txtFilePath.Text;  

    if (!File.Exists(path)) 
    { 
     using (StreamWriter sw = File.CreateText(path))   
     { 
      foreach (string lines in employeeList.Items) 
       sw.WriteLine(lines); 
     } 
     else 
     { 
      using (StreamWriter sw = File.AppendText(path))<--This is 
where is says Arugment exception was unhandled.    
      {  
       foreach (var item in employeeList.Items) 
        sw.WriteLine(item.ToString()); 
      } 
     } 
    } 
} 
+0

显示你的路径文件 – Mediator 2012-04-26 12:19:04

+0

为什么不若(File.Exists(路径)),而不是如果(!File.Exists(路径)) ? – Hari 2012-04-26 12:23:03

回答

0

包裹在一个try catch语句,并在抓住你可以生成一个消息给用户(也许一个JavaScript警告框)

伪码的代码...

try 
{ 
    current code 
} 
catch (exception e) 
{ 
    error message to user 
} 
0

使用

private void Save_Click(object sender, EventArgs e) 
{ 
    if (!string.IsNullorEmpty(txtFilePath.Text)) 
    { 
    MessageBox.Show("Please enter new path"); 
    txtFilePath.Focus(); 
    return; 
    } 
    else 
    { 
    string path = txtFilePath.Text; 

     if (!File.Exists(path)) 
     { 
      ..... Your rest code 
+0

那么当你走这条路线时,它会发出IsNullorEmpty部分顶部的错误。 – shan 2012-04-26 12:49:56

+0

@Nikhil Agrawal:你错过了其他的支架...... – 2012-04-26 13:00:57

+0

@shan:感谢Buddy。更正它。 – 2012-04-26 13:09:30

0

这意味着:

路径是一个零长度字符串,仅包含空白,或包含 一个或多个无效字符由InvalidPathChars所限定。

0
if(path == "") 
{ 
    // Alert user or throw Exception 
} 
0

我知道这是一个旧帖子,但我想我会回答。

上述代码的所有错误是,有一个}在错误的地方。

If (not file exists) 
{ 

    else 
    { 
    } 
} 

其他的应该会进一步下降。

if(not file exists) 
{ 
} 
else 
{ 
}