2013-12-10 58 views
-1

如果你能帮助解决这个问题,我正在游荡。我有一个控制台应用程序,它将字符串目录作为输入。传递一个空字符串作为目录参数

我想放入一个检查位置,它允许我检查用户是否放入一个空字符串我希望系统记录一个错误,如ArgumentNullException。

string inputDirectory = ""; 
private void DoSomething(string inputDirectory) 
      { 
       try 
       { 
        Directory.CreateDirectory(inputDirectory) 
       } 
       catch (ArgumentNullException e) 
       { 
        Log.Error("program failed because the directory supplied was empty", e.Message); 
       } 
      } 

该代码是沿着这些线的某处。现在我遇到的问题是不会抛出异常。相反,程序假定该目录位于项目的bin \ Debug文件夹中。如果提供的目录是“”,我不知道我需要做什么才能停止程序的执行。我已经完成了if(inputDirectory == null),但这没有奏效。 有什么建议吗? 谢谢, Jetnor。

回答

2

也许你可以添加一个检查等;

string inputDirectory = ""; 
private void DoSomething(string inputDirectory) 
{ 
    if (String.IsNullOrEmpty(inputDirectory) 
     throw new ArgumentNullException(); 

    try 
    { 
     Directory.CreateDirectory(inputDirectory) 
    } 
    catch (ArgumentNullException e) 
    { 
     Log.Error("program failed because the directory supplied was empty", e.Message); 
    } 
} 
+1

感谢所有的答案。我将其标记为我的答案,因为那是我用来抛出异常的实际结构。尽管使用String.isNullOrEmpty部分,所有人都有答案。 :) – Jetnor

2

我不知道我需要做什么来停止执行程序,如果 提供的目录是“”。我已经完成了if(inputDirectory == null),但这没有奏效。

使用string.IsNullOrEmpty

或者,如果你使用的是.NET 4.0或更高版本,可以使用string.IsNullOrWhiteSpace

if(string.IsNullOrWhiteSpace(inputDirectory)) 
{ 
    //invalid input 
} 

两者string.IsNullOrEmptystring.IsNullOrWhiteSpace将检查对空和空字符串。 string.IsNullOrWhiteSpace也检查包含所有空格的字符串。

1

您可以使用String.IsNullOrWhitespace 来检查字符串是否仅为空或空白。

指示指定的字符串是否为空,空白或仅由空格字符组成。

if (String.IsNullOrWhitespace(inputDirectory)) 
{ 
    throw new YourException("WhatEver"); 
} 
1

您需要使用String.IsNullOrEmpty()来检查Empty字符串。

方法String.IsNullOrEmpty()检查给定的字符串是否为nullEmpty

如果发现给定StringnullEmpty那么它返回true

步骤1:检查inputDirectory通过使用String.IsNullOrEmpty()方法为空或空。
第2步:如果方法返回true抛出ArgumentNullException使用throw关键字。

试试这个:

  string inputDirectory = ""; 
      private void DoSomething(string inputDirectory) 
      { 
       try 
       { 
        if(String.IsNullOrEmpty(inputDirectory)) 
        throw new ArgumentNullException(); 
        Directory.CreateDirectory(inputDirectory) 
       } 
       catch (ArgumentNullException e) 
       { 
        Log.Error("program failed because the directory supplied was empty", e.Message); 
       } 
      } 
相关问题