finally-Block
Completion requirements
Im Beispiel Verschachtelte Exceptions wird die finally-Klausel
verwendet. Dieser Block wird im Normal- und im Ausnahmefall, also
immer abgearbeitet. (Das gilt selbst dann, wenn der
catch-Block mit return
oder mit throw verlassen
wird.)
Der finally-Block dient zum Bereinigen von Ressourcen: z.B. das Schließen von
geöffneten Dateien oder von Datenbankverbindungen.
Anweisungen die unterhalb des finally-Blocks
werden nur dann ausgeführt, wenn der catch-
Block nicht mit return
oder throw verlassen
wurden:
- using System;
- using System.IO;
- namespace FinallyBlock
- {
- class Program
- {
- static void Main(string[] args)
- {
- StreamWriter sw = null;
- try
- {
- sw = new StreamWriter("text.txt");
- sw.Write("test");
- throw new Exception("Testexception");
- }
- catch (Exception e)
- {
- Console.WriteLine(e.Message);
- }
- finally // wird im Normal- u. Ausnahmefall ausgeführt
- {
- if (sw != null)
- sw.Close();
- }
- // Dieser Code wird nur ohne return oder throw im catch-Block erreicht
- Console.ReadKey();
- }
- }
- }
http://openbook.rheinwerk-verlag.de/visual_csharp_2012/1997_07_001.html#dodtp89512caf-8bdf-4c25-9d7c-7faa076c32a4 (29.11.2018)
Last modified: Thursday, 29 November 2018, 11:12 AM