Wreszcie bloki tylko gwarancja (przynajmniej w większości gwarantują, zobaczyć z wyjątkiem MSDN poniżej), które będą wszedł w przypadku, gdy blok try zgłasza wyjątek. Jeśli wyrzucisz wyjątek w obrębie bloku, to wyjątek spowoduje, że kontrola opuści blok finally, a reszta kodu wewnątrz tego bloku finally nie zostanie wykonana.
W twoim przypadku linia, która nie jest wykonywana, występuje po wyjściu w tym samym bloku finally, więc zostaje pomijana.
Od MSDN - try-finally:
wreszcie blok jest przydatny do czyszczenia wszelkich zasobów, które są przydzielone w spróbować blok, a do uruchamiania kodu, który musi wykonać nawet jeśli wystąpi wyjątek w bloku spróbuj. Zazwyczaj oświadczenia o wreszcie bloku są wykonywane, gdy kontrola pozostawia spróbować stwierdzenie, czy przekazanie kontroli następuje w wyniku normalnego wykonywania, z wykonaniem przerwie, kontynuować, Instrukcja goto lub return lub propagacja wyjątku z oświadczenia wypróbuj.
W ramach obsługiwanego wyjątku, związany blok wreszcie jest gwarantowany, aby uruchomić . Jeśli jednak wyjątek jest nieobsługiwany, wykonanie bloku w końcu zależy od tego, w jaki sposób zostanie wywołana operacja odwijania wyjątku . To z kolei zależy od konfiguracji komputera. Aby uzyskać więcej informacji, zobacz Nieobsługiwane przetwarzanie wyjątków w środowisku CLR.
Uwaga: Unhandled Exception Processing in the CLR jest odniesienie do artykułu zamieszczonego w numerze września 2008 r MSDN Magazine. Wszystkie 2008 i starsze wydania MSDN Magazine są dostępne tylko jako pliki .chm i będą musiały zostać pobrane przed przeglądaniem.
Powiązane: [Co się dzieje w języku C#, czy w końcu blok zgłasza wyjątek?] (Http://stackoverflow.com/questions/2911215) –