2010-06-16 4 views
0

Je tente de rattraper une erreur avec un paramètre de ligne de commande incorrect pour l'application de la formeCatch erreur Commandline

Myapp.exe myFile.txt 

L'application lance cependant une « exception non gérée - Le chemin n'est pas la forme juridique ».

Ci-dessous est mon code et je me demande pourquoi il ne montre pas la boîte de message comme prévu dans le code? Merci.

+0

essayez d'enlever que '.ToString()' –

+0

@Rubens: Cela n'aidera pas. (Cependant, il devrait le faire de toute façon) – SLaks

+0

Essayé de supprimer ToString(). Ne marche pas. Merci. –

Répondre

1

Si vous passez un chemin non valide à File.Exists (par exemple, C:\D:/E:\), vous obtenez cette exception.

+0

Non, malheureusement, je ne sais pas et je ne peux pas comprendre ce qui ne va pas dans mon code. –

+0

Que diable voulez-vous dire? – SLaks

0

Vous devez modifier votre code comme ci-dessous est plus mieux: 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); 
    } 
} 

Parce que quand votre chemin de fichier contient des caractères spéciaux (<,>,, *, etc), le File.Exists() peut-être jeter une exception comme vous le voyez.