Aplikacje muszą mieć możliwość obsługi błędów występujących podczas wykonywania w spójny sposób. Platforma .NET udostępnia model do powiadamiania aplikacji o błędach w jednolity sposób: operacje platformy .NET wskazują na niepowodzenie przez zgłaszanie wyjątków.
Wyjątki
Wyjątek to dowolny warunek błędu lub nieoczekiwane zachowanie, które występuje przez program wykonujący. Wyjątki mogą być zgłaszane z powodu błędu w kodzie lub w kodzie wywoływanym (takim jak biblioteka udostępniona), niedostępnych zasobów systemu operacyjnego, nieoczekiwanych warunkach napotkanych przez środowisko uruchomieniowe (takich jak kod, którego nie można zweryfikować) itd. Aplikacja może odzyskać dane po niektórych z tych warunków, ale nie z innych. Chociaż można odzyskać dane po większości wyjątków aplikacji, nie można odzyskać sprawności po większości wyjątków środowiska uruchomieniowego.
Na platformie .NET wyjątkiem jest obiekt dziedziczony po System.Exception klasie. Wyjątek jest zgłaszany z obszaru kodu, w którym wystąpił problem. Wyjątek jest przekazywany w górę stosu, dopóki aplikacja nie obsłuży go lub program zakończy działanie.
Wyjątki a tradycyjne metody obsługi błędów
Tradycyjnie model obsługi błędów w języku polegał na unikatowym sposobie wykrywania błędów i lokalizowania dla nich programów obsługi lub na mechanizmie obsługi błędów dostarczonym przez system operacyjny. Sposób, w jaki platforma .NET implementuje obsługę wyjątków, zapewnia następujące korzyści:
Zgłaszanie wyjątków i obsługa działa tak samo w przypadku języków programowania .NET.
Nie wymaga żadnej konkretnej składni języka do obsługi wyjątków, ale umożliwia każdemu językowi zdefiniowanie własnej składni.
Wyjątki mogą być zgłaszane przez proces, a nawet granice maszyny.
Kod obsługi wyjątków można dodać do aplikacji w celu zwiększenia niezawodności programu.
Wyjątki oferują zalety innych metod powiadamiania o błędach, takich jak kody powrotne. Błędy nie są niezauważone, ponieważ jeśli zostanie zgłoszony wyjątek i nie obsłużysz go, środowisko uruchomieniowe zakończy działanie aplikacji. Nieprawidłowe wartości nie są nadal propagowane przez system w wyniku kodu, który nie może sprawdzić kodu powrotnego błędu.
Typowe wyjątki
W poniższej tabeli wymieniono niektóre typowe wyjątki z przykładami przyczyn.
W tym module omówiono użycie wyjątków i proces obsługi wyjątków w aplikacjach konsoli języka C#. Praktyczne działania zapewniają doświadczenie w implementowaniu wzorców obsługi wyjątków dla różnych scenariuszy kodowania.