1. Unbehandelte Exceptions

Exceptions werden „geworfen“ (engl. throw). Wenn sie in der verursachenden Methoden nicht aufgefangen (engl. catch) und behandelt (engl. handling) werdem, so wird jeweils in der aufrufenden Methode danach gesucht. Falls überhaupt kein benutzerdefiniertes Exception handling im aktuellen Kontext existiert, wird die Exception erst von der .NET-Laufzeitumgebung gefangen. In diesem Fall wird das Programm angehalten und eine entsprechende Systemmeldung angezeigt, was unseren Qualitätsansprüchen nicht genügt!

Unbehandelte Exception

Beispiel einer unbehandelten Exception


2. Exception handling (try-catch-Anweisung)

Der kritische Code steht im try-Anweisungsblock, die Exception wird typabhängig im catch-Anweisungsblock aufgefangen und behandelt:

  1. using System;
  2. using System.IO;
  3.  
  4. namespace exceptionHandling
  5. {
  6.     class Program
  7.     {
  8.         static void Main(string[] args)
  9.         {
  10.             ReadFile("fileDoesNotExist.txt");
  11.             Console.ReadKey();
  12.         }
  13.         static void ReadFile(string fileName)
  14.         {
  15.             try
  16.             {
  17.                 TextReader reader = new StreamReader(fileName);  // wirft ev. Exception
  18.                 string line = reader.ReadLine();
  19.                 Console.WriteLine(line);
  20.                 reader.Close();
  21.                 Console.WriteLine("Datei wurde gelesen.");
  22.             }
  23.             catch (FileNotFoundException fnfe)
  24.             {
  25.                 // Exception handler fuer FileNotFoundException
  26.                 Console.WriteLine("The file '{0}' is not found.", fileName);  //tzerinfo
  27.             }
  28.             catch (IOException ioe)
  29.             {
  30.                 // Exception handler fuer andere i/o-exceptions
  31.                 Console.WriteLine(ioe.Message);      // Ausgabe des Stacktrace
  32.             }
  33.         }
  34.     }
  35. }

Dabei muss die Exception-Hierarchie eingehalten werden:


Exception-Hierarchie

Exception-Hierarchie

http://flylib.com/books/en/4.8.1.109/1/  (29.11.2018)

Last modified: Wednesday, 4 September 2024, 10:17 AM