0

好的,这是我正在处理的代码。我试图获得一个例外,这样如果他们在盒子里没有东西来保存它就会弹出并且不让他们继续前进,直到把东西放在那里。现在我知道当我运行我的程序并单击保存按钮时它告诉我这个

ArgumentException 未处理

这意味着什么。我知道它说空路径名是不合法的。但是路径是用户想要的。我一直在搞砸这个,我试图弄清楚该怎么做,但仍然有点困惑。那么尝试去做的最好方法是什么。我是否必须创建一个类才能使其工作,或者我可以添加到我的代码中。我用 try and catch 修复了另一部分,但我无法让它在这个上工作,或者我可能把它放在错误的位置。

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());
            }
        }
    }
}
4

6 回答 6

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
于 2012-04-26T12:18:10.833 回答
0

这意味着:

path 是一个长度为零的字符串,仅包含空格,或者包含一个或多个由 InvalidPathChars 定义的无效字符。

于 2012-04-26T12:18:38.337 回答
0
if(path == "")
{
    // Alert user or throw Exception
}
于 2012-04-26T12:19:39.197 回答
0

您的“路径”不正确。

ArgumentException   
path is a zero-length string, contains only white space, or contains one or more invalid characters as defined by InvalidPathChars.

http://msdn.microsoft.com/ru-ru/library/system.io.path.invalidpathchars.aspx

于 2012-04-26T12:21:19.217 回答
0

将代码包装在 try catch 语句中,在 catch 中,您可以向用户生成一条消息(可能是一个 javascript 警报框)

伪代码...

try
{
    current code
}
catch (exception e)
{
    error message to user
}
于 2012-04-26T12:21:23.320 回答
0

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

上面代码的所有问题是在错误的地方有一个 }。

If (not file exists)
{

   else 
   {
   }
}

else 应该再下降一点。

if(not file exists)
{
}
else
{
}
于 2012-05-31T09:55:23.843 回答