Benutzer-Werkzeuge

Webseiten-Werkzeuge


schule:fehlerbehandlung

Fehlerbehandlung

Während eines Programmablaufes können Fehler auftreten – sogenannte Ausnahmen (engl. exceptions). Vergleiche auch Kapitel 7.1 aus Visual C# 2012.

Wenn eine Anweisung läuft und etwas schief geht, wirft ein Methodenaufruf eine Exception an den Aufrufer. Lasse den folgenden Quelltext laufen und versuche eine Exception auszulösen.

            int iEingangA;
            int iEingangB;
            string nutzereingabe;
 
            Console.WriteLine("Bitte geben Sie den Wert für Eingang A an:");
            nutzereingabe = Console.ReadLine();            
            iEingangA = Convert.ToInt32(nutzereingabe);
 
            Console.WriteLine("Bitte geben Sie den Wert für Eingang B an:");
            nutzereingabe = Console.ReadLine();
            iEingangB = Convert.ToInt32(nutzereingabe);

Wenn eine Exception aufgetreten ist (man sagt, sie wurde „geworfen“), kann sie behandelt werden, indem man sie auffängt. Dies geschieht mit einem try-catch-Block. Versuche mit Hilfe eines Debuggers den folgenden Quelltext schrittweise nachzuvollziehen.

            // In welcher Reihenfolge werden die folgenden Zeilen ausgeführt?
            // Kontrollieren Sie ihre Angabe mit dem Debugger.
            // Welche Ausgabe wurde erzeugt?
 
            double d = 0;
            try
            {
                d = Convert.ToDouble("Fünundzwanzig");
                d = d * 2;
            }
            catch (FormatException ex)
            {
                Console.WriteLine("Im Catch-Block: " + ex.Message);
            }
            Console.WriteLine("d= " + d);

Und noch ein weiteres Beispiel.

            // In welcher Reihenfolge werden die folgenden Zeilen ausgeführt?
            // Kontrollieren Sie ihre Angabe mit dem Debugger.
            // Welche Ausgabe wurde erzeugt?
 
            double d = 0;
            try
            {
                d = Convert.ToDouble("25");
                d = d * 2;
            }
            catch (FormatException ex)
            {
                Console.WriteLine("Im Catch-Block: " + ex.Message);
            }
            Console.WriteLine("d= " + d);

Schließlich ein drittes Beispiel mit mehreren catch-Blöcken. Hier können Fehler nach ihrer Art unterschieden werden.

            // In welcher Reihenfolge werden die folgenden Zeilen ausgeführt?
            // Kontrollieren Sie ihre Angabe mit dem Debugger.
            // Welche Ausgabe wurde erzeugt?
 
            double d = 0;
            try
            {
                d = Convert.ToDouble("25");
                d = d * 2;
            }
            catch (FormatException ex)
            {
                Console.WriteLine("Im Catch-Block");
            }
            catch (System.Net.Mail.SmtpException)
            {
                Console.WriteLine("Im Catch-Block der SMTP Exception");
            }
            Console.WriteLine("d= " + d);
schule/fehlerbehandlung.txt · Zuletzt geändert: 19.04.2017 08:39 (Externe Bearbeitung)