2010-06-16 92 views
0

我试图捕获错误与形式捕捉命令行错误

Myapp.exe myFile.txt 

的应用然而,应用程序引发了不正确的命令行参数“未处理的异常 - 路径是法律形式的不”。

下面是我的代码,我想知道为什么它不显示代码中提供的消息框?谢谢。

+0

尝试删除'.ToString()' – 2010-06-16 00:55:37

+0

@Rubens:这没有帮助。 (但是,他应该这样做) – SLaks 2010-06-16 00:56:00

+0

尝试删除ToString()。不起作用。谢谢。 – 2010-06-16 00:58:38

回答

1

如果您传递给File.Exists(例如,C:\D:/E:\)无效的路径,你会得到例外。

+0

不幸的是我没有,我不能在我的代码中找出什么是错的。 – 2010-06-16 00:59:44

+0

你究竟是什么意思? – SLaks 2010-06-16 01:10:23

0

你应该修改你的代码像波纹管是越多越好?d

 
String[] cmdlineArgs = Environment.GetCommandLineArgs(); 

if (cmdlineArgs.Length == 2) 
{ 
    try 
    { 
     if (File.Exists(cmdlineArgs[1].ToString())) 
      ConfigParameters.SetConfigParameters(cmdlineArgs[1].ToString()); 
    } 
    catch (Exception ex) 
    { 
      MessageBox.Show("Configuration file does not exist.Restarting..."); 
      Environment.Exit(1); 
    } 
} 

因为当你的文件路径包含一些特殊字符(<,>,*,等等),File.Exists()可能会引发异常,如您所见。