Wprowadzenie do obsługi wyjątków w C #

Nie możemy oczekiwać, że użytkownik wprowadzi prawidłowe dane przez cały czas. Jednak jeśli niepoprawne lub nieoczekiwane dane wejściowe nie zostaną poprawnie obsłużone, cały kod może ulec awarii lub przejść z nieskończoną pętlą. Jest to problem, który zaczyna się podczas wykonywania programu z powodu nieoczekiwanych warunków lub danych wejściowych. Na przykład wynik jest nieskończony, gdy liczba jest dzielona przez zero. Obsługa wyjątków to sposób na poinformowanie programu o przejściu do następnego bloku kodu lub podanie określonego wyniku w określonych sytuacjach. Obsługa wyjątków może być wykonana przy użyciu poniżej czterech słów kluczowych.

  1. Try: blok try określa typ wyjątku, który ma być obsługiwany. W tym miejscu zostałby wychwycony wyjątek. Zawsze będzie się łączyć z jednym blokiem catch.
  2. Catch: Gdy blok try określi typ i otrzyma jeden wyjątek podczas wykonywania, blok catch potwierdzi typ procedury obsługi wyjątków, która ma zostać użyta. Blok ten określi również, gdzie ma być obsługiwany wyjątek. Jak wskazuje słowo kluczowe, to tak, jakby złapać wyjątek.
  3. Wreszcie: ten blok ma pewien zestaw instrukcji. Bez względu na wyjątek, instrukcje zdefiniowane w ostatnim bloku zawsze będą wykonywane.
  4. Rzut: po wykryciu wyjątku słowo kluczowe „rzut” służy do wyświetlenia przechwyconego wyjątku.

Możesz zapisać oprogramowanie lub kod z wielu kłopotów, definiując moduł obsługi wyjątków. Dobrą praktyką jest definiowanie modułu obsługi wyjątków wszędzie tam, gdzie jest możliwy wyjątek.

Składnia
Za każdym razem, gdy zgłaszany jest wyjątek, zadeklarowana metoda przechwytuje wyjątek za pomocą słowa kluczowego try-catch. Musimy umieścić tę kombinację w części kodu, oczekuje się wyjątku. Kody te nazywane są kodami chronionymi. Możesz także zdefiniować więcej niż jedno słowo kluczowe catch dla jednego słowa kluczowego try. Na końcu treści zostanie wykonana ostatnia część kodu, która zostanie wykonana niezależnie od tego, czy zostanie zgłoszony wyjątek.

Kod

try
(
//Define the statement that could cause an exception.
)
Catch(ExceptionName secondException)
(
//error handling code
)
Finally
(
//define the statement that will be executed
)

Jak działa obsługa wyjątków w C #?

Istnieje wiele predefiniowanych klas do obsługi wyjątku. Blok try obejmuje część kodu, która może zgłosić wyjątek, a funkcja catch potwierdza, co zrobić, gdy wyjątek zostanie przechwycony. Ostatnia część bloku określa, co należy zrobić bez względu na to, czy wykryty zostanie wyjątek, a część rzutowania wyświetli komunikat, jeśli zostanie ustawiony.

Klasy wyjątków w C #

Istnieje wiele klas dostępnych w języku C #, dzięki którym można reprezentować wyjątki. Wszystkie klasy pochodzą od głównej klasy o nazwie System. Wyjątek. Istnieje kilka klas, które również pochodzą od System.ApplicationException i System.SystemException.

Przykłady klas wyjątków w C #

Wyjątki pochodzą od Systemu. Klasa wyjątków. Oto lista typowych klas wyjątków C #.

WyjątekOpis
System.DivideByZeroExceptionobsługuje błąd przy próbie podzielenia liczby przez zero.
System.NullReferenceExceptionobsługuje błąd w odniesieniu do obiektu, który nie istnieje.
System.InvalidCastExceptionobsługuje błąd podczas próby nieprawidłowego przesyłania.
System.IO.IOExceptionObsługiwany jest cały błąd wejścia-wyjścia.
System.FieldAccessExceptionPodczas próby uzyskania dostępu do nieautoryzowanej klasy

1. C # try / catch

Obsługa wyjątków odbywa się przez try i catch block w C #. Blok try w C # służy do umieszczenia kodu, który może zgłosić wyjątek. Wyjątek jest obsługiwany przez blok catch.

Przykład w C # bez try / catch

Kod:

using System;
public class exceptionhandling
(
public static void Main(string() args)
(
int a = 10;
int b = 0;
int x = a/b; //we are trying to divide the number with zero
Console.WriteLine("other part of the code");
)
)

Wynik:

C # spróbuj / złap przykład

Kod

using System;
public class ExExample
(
public static void Main(string() args)
(
try
(
int a = 10;
int b = 0;
int x = a / b;
)
catch (Exception e) ( Console.WriteLine(e); )
Console.WriteLine("Rest of the code");
)
)

Wynik:

Wreszcie wykorzystanie klas wyjątków w języku C #

Wyświetli komunikat bez względu na wyjątek.

Kod

using System;
public class Exceptionhandling
(
public static void Main(string() args)
(
try
(
int x = 5;
int y= 0;
int z = x / y;
)
catch (Exception obj) ( Console.WriteLine(obj); )
finally ( Console.WriteLine("Time to execute finally block"); )
Console.WriteLine("Other part of the code");
)
)

Wynik:

1. W końcu C # przykład, jeśli wyjątek nie jest obsługiwany

Kod

using System;
public class ExceptionHandling
(
public static void Main(string() args)
(
try
(
int p = 6;
int q = 0;
int r= p/q;
)
catch (NullReferenceException nullObject) ( Console.WriteLine(nullObject); )
finally ( Console.WriteLine("Exception not handled. Now Finally section will be executed"); )
Console.WriteLine("Other part of the code");
)
)

Wynik:

2. Wyjątek zdefiniowany przez użytkownika w języku C #

Nie tylko system zdefiniowany, ale możemy również ustawić własny wyjątek. Musimy jednak odziedziczyć kod, aby to zrobić.

Kod

using System;
public class userdefinedInvalidAge : Exception
(
public userdefinedInvalidAge (String errorMessage)
: base(errorMessage)
(
)
)
public class TestUserDefinedException
(
static void validateAge(int age)
(
if (age < 18)
(
throw new userdefinedInvalidAge("Sorry, Age must be greater than 18");
)
)
public static void Main(string() args)
(
try
(
validateAge(12);
)
catch (userdefinedInvalidAge e) ( Console.WriteLine(e); )
Console.WriteLine("Rest of the code");
)
)

Wynik:

Wniosek

W dowolnym miejscu, które może generować błąd z jakiegokolwiek powodu, należy użyć modułu obsługi wyjątków. Konieczne jest użycie instrukcji catch i rozpoczęcie od ogólnego do konkretnego wyjątku. Całe oprogramowanie lub kod jest zagrożone bez odpowiedniej procedury obsługi wyjątków.

Polecane artykuły

To jest przewodnik po obsłudze wyjątków w C #. Tutaj omawiamy działanie obsługi wyjątków w języku C #, przykłady i użycie c #. Możesz również przejrzeć nasze inne powiązane artykuły, aby dowiedzieć się więcej-

  1. Przeciążenie w C #
  2. Funkcje ciągów C #
  3. Zastosowania C #
  4. Instrukcja C # if
  5. Przewodnik po obsłudze wyjątków w VB.NET
  6. Przeciążanie i zastępowanie w C #
  7. Zdarzenia VB.Net