2013-12-10 2 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.IsNullOrEmpty и string.IsNullOrWhiteSpace бы проверить на пустые и нулевые строки. string.IsNullOrWhiteSpace также проверяет строку, содержащую все пробелы.

1

Вы можете использовать String.IsNullOrWhitespace , чтобы проверить, есть ли строка, ну, нуль или пробелы.

Указывает, является ли указанная строка пустой, пустой или состоит только из символов пробела.

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

вам нужно использовать String.IsNullOrEmpty() для проверки Empty строк.

метод String.IsNullOrEmpty() проверяет, имеет ли данная строка null или Empty.

, если он основывает данный String либо null или Empty то он возвращает true.

Шаг 1: Проверка inputDirectory Нулевая или пустая с использованием метода String.IsNullOrEmpty().
Шаг 2: Если метод возвращает true, введите ArgumentNullException, используя ключевое слово .

Попробуйте:

  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); 
       } 
      } 
Смежные вопросы