2010-06-16 4 views
0

나는 응용 프로그램은 그러나을 발생 형태캐치 명령 줄 오류

Myapp.exe myFile.txt 

의 응용 프로그램에 대한 잘못된 명령 줄 매개 변수를 사용하여 오류를 잡으려고 노력하고있다.

아래 코드는 무엇이며 코드에서 제공하는 메시지 상자가 표시되지 않는 이유는 무엇입니까? 감사. 당신이 File.Exists (예, C:\D:/E:\)에 잘못된 경로를 전달하는 경우

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

그'.ToString()'을 제거하려고 시도하십시오 –

+0

@Rubens : 그건 도움이되지 않습니다. (그러나 어쨌든해야만합니다.) – SLaks

+0

ToString() 제거를 시도했습니다. 작동하지 않습니다. 감사. –

답변

1

, 당신은 예외를 얻을.

+0

불행히도 나는 내 코드에서 무엇이 잘못 됐는지 모르겠다. –

+0

지구상의 무엇을 의미합니까? – SLaks

0

당신은 당신의 코드를 수정해야합니다 :

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

D

때문에 파일 경로가 일부 특수 문자 (<,>, *가 포함되어있는 경우, 등), File.Exists() 어쩌면 당신이 볼 수있는 예외를 throw합니다.