我正在尝试使用不正确的命令行参数来捕获表单
的应用程序错误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)
{
}
答案 0 :(得分:1)
如果您将无效路径传递给File.Exists
(例如,C:\D:/E:\
),则会出现该异常。
答案 1 :(得分:0)
检查文件路径中的不正确字符(例如'>'<'>等等)。
http://msdn.microsoft.com/en-us/library/system.io.path.getinvalidfilenamechars.aspx &安培; http://msdn.microsoft.com/en-us/library/system.io.path.getinvalidpathchars.aspx
答案 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()可能会抛出异常,如你所见。