2016-04-30 3 views
0

Я хотел бы понять, что не так с моим кодом, потому что он не отображает сообщение об ошибке для пользователя. Спасибо вам за ваши предложения.Как передать сообщение об ошибке в C#?

public class Program 
    { 
     static void Main (string[] args) { 
     Console.WriteLine("Please, input some text"); 
     string name = Console.ReadLine(); 
     Console.WriteLine(AskString(name)); 
     Console.ReadLine();   
    } 

    public static string AskString(string greeting) 
    { 
     if (greeting == "") 
     { 
      throw new System.Exception("Parameter cannot be null");     
      Console.WriteLine("Text input failed in subroutine AskString"); 
     } 

     return greeting;    
    } 
+0

Вы должны положить 'Console.WriteLine (« Ошибка ввода текста в подпрограмме AskString »);' before' throw new System.Exception («Параметр не может быть пустым») ; 'поскольку он покидает if-scope, как только вы выкинете исключение. Значение программы никогда не достигает вашего сообщения об ошибке. Кроме того, у Алексея есть хорошая точка в проверке пробелов/пробелов. – Cicero

ответ

3

После броска выполнение заявки будет остановлено, поэтому ваше сообщение не появится.

изменить код

Console.WriteLine("Text input failed in subroutine AskString"); 
throw new System.Exception("Parameter cannot be null");     

Кроме того, когда вы бросаете новое исключение, оно должно быть обрабатывать в другом месте. если вы не делаете этого, то ваше приложение будет аварийно завершено

1

Скорее всего, greeting == "" возвращает false. Попробуйте String.IsNullOrWhiteSpace вместо этого игнорировать символы типа CR или LF.

1

Вы забрасываете исключение, которое не обрабатывается ни на каком более высоком уровне в вашем приложении (так что вы ничего не увидите). Код после броска не будет достигнут в любом случае из-за броска.

 Смежные вопросы

  • Нет связанных вопросов^_^