schule:fehlerbehandlung
                Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
| schule:fehlerbehandlung [2015-12-06 18:36] – marco.bakera | schule:fehlerbehandlung [2017-04-19 06:39] (aktuell) – Externe Bearbeitung 127.0.0.1 | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| + | ====== Fehlerbehandlung ====== | ||
| + | |||
| + | Während eines Programmablaufes können Fehler auftreten -- sogenannte Ausnahmen (engl. // | ||
| + | |||
| + | 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. | ||
| + | |||
| + | <code csharp> | ||
| + | int iEingangA; | ||
| + | int iEingangB; | ||
| + | string nutzereingabe; | ||
| + | |||
| + | Console.WriteLine(" | ||
| + | nutzereingabe = Console.ReadLine(); | ||
| + | iEingangA = Convert.ToInt32(nutzereingabe); | ||
| + | |||
| + | Console.WriteLine(" | ||
| + | nutzereingabe = Console.ReadLine(); | ||
| + | iEingangB = Convert.ToInt32(nutzereingabe); | ||
| + | </ | ||
| + | |||
| + | Wenn eine Exception aufgetreten ist (man sagt, sie wurde " | ||
| + | |||
| + | <code csharp> | ||
| + | // 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(" | ||
| + | d = d * 2; | ||
| + | } | ||
| + | catch (FormatException ex) | ||
| + | { | ||
| + | Console.WriteLine(" | ||
| + | } | ||
| + | Console.WriteLine(" | ||
| + | |||
| + | </ | ||
| + | |||
| + | Und noch ein weiteres Beispiel. | ||
| + | |||
| + | <code csharp> | ||
| + | |||
| + | // 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(" | ||
| + | d = d * 2; | ||
| + | } | ||
| + | catch (FormatException ex) | ||
| + | { | ||
| + | Console.WriteLine(" | ||
| + | } | ||
| + | Console.WriteLine(" | ||
| + | |||
| + | </ | ||
| + | |||
| + | Schließlich ein drittes Beispiel mit mehreren '' | ||
| + | |||
| + | <code csharp> | ||
| + | // 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(" | ||
| + | d = d * 2; | ||
| + | } | ||
| + | catch (FormatException ex) | ||
| + | { | ||
| + | Console.WriteLine(" | ||
| + | } | ||
| + | catch (System.Net.Mail.SmtpException) | ||
| + | { | ||
| + | Console.WriteLine(" | ||
| + | } | ||
| + | Console.WriteLine(" | ||
| + | </ | ||
