2016-04-30 8 views
0

Ich möchte verstehen, was mit meinem Code falsch ist, weil es eine Fehlermeldung für den Benutzer nicht anzeigt. Vielen Dank für Ihre Vorschläge.Wie man eine Fehlermeldung in C# wirft?

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

Sie müssen 'Console.WriteLine (" Texteingabe fehlgeschlagen in Subroutine AskString ");' vor 'werfen neue System.Exception (" Parameter kann nicht null sein ") ; 'da es das if-scope verlässt, sobald Sie die Ausnahme auslösen. Das bedeutet, dass das Programm niemals Ihre Fehlermeldung erreicht. Auch Alexei hat einen guten Punkt in Bezug auf Null/Leerzeichen-Prüfungen. – Cicero

Antwort

3

Nach dem Wurf wird die Ausführung der Anwendung gestoppt, so dass Ihre Nachricht nicht angezeigt wird.

Code

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

auch ändern, wenn Sie eine neue Ausnahme auslösen, muss sie an einem anderen Ort zu behandeln sein. Wenn Sie dies nicht tun, stürzt Ihre Anwendung ab

1

Sie trauen eine Ausnahme, die in Ihrer Anwendung nicht auf einer höheren Ebene behandelt wird (damit Sie nichts sehen). Der Code nach dem Wurf wird auf keinen Fall wegen des Wurfes erreicht.

Verwandte Themen