2013-12-10 97 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); 
       } 
      } 
相關問題