Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 21123|Odpowiedź: 0

[Źródło] Wyjątki i obsługa wyjątków (Przewodnik programistyczny w C#)

[Skopiuj link]
Opublikowano 12.04.2015 22:22:03 | | |

Funkcja obsługi wyjątków w języku C# pomaga radzić sobie z nieoczekiwanymi lub nietypowymi sytuacjami podczas działania programu. Obsługa wyjątków wykorzystuje słowa kluczowe, try, catch i final, aby wypróbować określone operacje w przypadku niepowodzeń, i choć te operacje mogą się nie zdać, możesz spróbować, jeśli jesteś pewien, że musisz to zrobić i chcesz potem oczyścić zasoby. Runtime Common Language (CLR), . NET Framework lub dowolny kod biblioteki lub aplikacji firm trzecich może generować wyjątki. Wyjątki tworzone są za pomocą słowa kluczowego typu rzut.
W wielu przypadkach wyjątki nie mogą być wywoływane bezpośrednio przez kod, lecz przez inną metodę niżej w stosie wywołań. W takim przypadku CLR rozszerza stos, aby sprawdzić, czy istnieje metoda zawierająca blok catch dla danego typu wyjątku, i jeśli znajdzie taką metodę, wykonuje pierwszy taki blok catch. Jeśli w stosie wywołań nie zostanie znaleziony żaden odpowiedni blok catch, proces zostaje zakończony, a użytkownikowi wyświetlony jest komunikat.
W tym przykładzie stosuje się metodę wykrywania, czy występuje sytuacja, w której jest podzielona przez zero; Jeśli tak, błąd zostanie wykryty. Jeśli nie ma obsługi wyjątków, program zakończy działanie i wygeneruje błąd "DivideByZeroException Not Handled".
  1. class ExceptionTest
  2. {
  3.     static double SafeDivision(double x, double y)
  4.     {
  5.         if (y == 0)
  6.             throw new System.DivideByZeroException();
  7.         return x / y;
  8.     }
  9.     static void Main()
  10.     {
  11.         // Input for test purposes. Change the values to see
  12.         // exception handling behavior.
  13.         double a = 98, b = 0;
  14.         double result = 0;

  15.         try
  16.         {
  17.             result = SafeDivision(a, b);
  18.             Console.WriteLine("{0} divided by {1} = {2}", a, b, result);
  19.         }
  20.         catch (DivideByZeroException e)
  21.         {
  22.             Console.WriteLine("Attempted divide by zero.");
  23.         }
  24.     }
  25. }
Skopiuj kod






Poprzedni:C# określa, czy ciąg znaków zawiera znak
Następny:Sprawdź, czy strona internetowa została stworzona przez program forum Discuz
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com