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 19:36] – marco.bakera | schule:fehlerbehandlung [2017-04-19 08: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(" | ||
+ | </ | ||