2016-04-30 7 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("パラメータはnullにできません ") ; '例外をスローするとすぐにif-scopeを残してしまうためです。つまり、プログラムはあなたのエラーメッセージに到達しません。 また、Alexeiはnull /空白チェックに関して良い点があります。 – Cicero

答えて

3

投げた後、アプリケーションの実行が停止するので、あなたのメッセージは表示されません。

は、新しい例外をスローするとき、それは別の場所での取り扱いでなければならない、あなたのコードも

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

を変更

。もしあなたがアプリケーションのクラッシュをしないなら、アプリケーションはクラッシュするでしょう

1

おそらくgreeting == ""はfalseを返します。 CRまたはLFなどの文字を無視する代わりに、String.IsNullOrWhiteSpaceを試してください。

1

アプリケーションの上位レベルで処理されない(何も表示されないので)例外が発生しています。いずれの場合でも、スローのためにスロー後のコードには到達しません。

関連する問題