捕获命令行错误

时间:2010-06-16 00:52:39

标签: c#

我正在尝试使用不正确的命令行参数来捕获表单

的应用程序错误
Myapp.exe myFile.txt

但应用程序会抛出“未处理的异常 - 路径不合法”。

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

String[] cmdlineArgs = Environment.GetCommandLineArgs();

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

     }

3 个答案:

答案 0 :(得分:1)

如果您将无效路径传递给File.Exists(例如,C:\D:/E:\),则会出现该异常。

答案 1 :(得分:0)

答案 2 :(得分: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()可能会抛出异常,如你所见。

相关问题