7.2 Sichern, dass Exceptions nicht verloren gehen, wenn Finally-Blöcke verwendet werden

Problem

Sie haben mehrere geschachtelte try-catch-, try-finally- und try-catch-finally-Blöcke. Wenn ein catch-Block versucht, eine Exception auszulösen, kann es passieren, dass die ausgelöste Exception verworfen wird und dass eine neue unerwartete Exception von einem äußeren Exception-Handler abgefangen wird. Sie möchten verhindern, dass diese Situation eintritt.

Lösung

Fügen Sie einen inneren try-catch-Block in den finally-Block des äußeren Exception-Handlers ein:

private void PreventLossOfException( )
{
    try
    {
        //...
    }
    catch(Exception e)
    {
        Console.WriteLine("Fehlermeldung == " + e.Message);
        throw;
    }
    finally
    {
        try
        {
            //...
        }
        catch(Exception e)
        {
 Console.WriteLine(@"Im ...

Get C# Kochbuch now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.