2010-06-16 123 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()可能會引發異常,如您所見。