Najlepszy samouczek C # Wyjątkiem manipulacja W 2024 r. W tym samouczku możesz dowiedzieć się gramatyka,klas wyjątków w C #,Obsługa wyjątków,Tworzenie wyjątku zdefiniowane przez użytkownika,Throwable,
Nieprawidłowości podczas problemów wykonywania programu. C # jest wyjątek w odpowiedzi na wyjątkowe okoliczności wynikających gdy program działa, takich jak próba dzielenia przez zero.
Wyjątkiem jest kontrola program jest przekazywana z jednej części do drugiej części drogi. C obchodzenie # wyjątek oparty na czterech kluczowych słówpowyżej:try, catch, finally iwyrzucić.
Załóżmy blok nieprawidłowe, to metoda za pomocą słów kluczowych spróbować złapać wyjątek. Kod try / catch jest chroniony kod, wykorzystanie try / catch, jak pokazano w poniższej składni:
próbować { } // Komunikat, który spowodował wyjątek catch (ExceptionName e1) { // Kod błędu obchodzenie} catch (ExceptionName e2) { // Kod błędu obchodzenie} catch (ExceptionName PL) { // Kod błędu obchodzenie} wreszcie { // instrukcja wykonywana}
Można wymienić wiele instrukcji catch złapać różne rodzaje wyjątków, aby zapobiec blok try generuje wiele wyjątków w różnych okolicznościach.
C # Wyjątkiem jest wykorzystanie reprezentacji klasy. klas wyjątków w C # w większości bezpośrednio lub pośrednio pochodzi od klasySystem.Exception.System.ApplicationException iSystem.SystemExceptionklasy pochodzi wyjątku klasy Klasy System.Exception.
System.ApplicationException klasy wsparcie generowane przez wyjątek aplikacji.Więc wyjątki programista zdefiniowane powinny pochodzić z tej klasy.
KlasaSystem.SystemException wszystko predefiniowane klasy bazowej system wyjątków.
Poniższa tabela przedstawia niektóre pochodzą z klas wyjątków predefiniowanych klas Sytem.SystemException:
异常类 | 描述 |
---|---|
System.IO.IOException | 处理 I/O 错误。 |
System.IndexOutOfRangeException | 处理当方法指向超出范围的数组索引时生成的错误。 |
System.ArrayTypeMismatchException | 处理当数组类型不匹配时生成的错误。 |
System.NullReferenceException | 处理当依从一个空对象时生成的错误。 |
System.DivideByZeroException | 处理当除以零时生成的错误。 |
System.InvalidCastException | 处理在类型转换期间生成的错误。 |
System.OutOfMemoryException | 处理空闲内存不足生成的错误。 |
System.StackOverflowException | 处理栈溢出生成的错误。 |
C #, aby spróbować i blok catch jest w formie zorganizowanego programu obsługi wyjątków. Korzystając z tych bloków, rdzeń oświadczenia i deklaracje programowe obsługi błędów rozdzielone.
obsługi tych bloków Błąd jest użycietry, catchiwreszciesłowa kluczowe do osiągnięcia. Oto wyjątek generowany, gdy podzielone przez zero przykładów:
using System; nazw ErrorHandlingApplication { DivNumbers klasy { int wynik; DivNumbers () { wynik = 0; } public void Division (int num1, int num2) { próbować { wynik = num1 / num2; } catch (DivideByZeroException e) { Console.WriteLine ( "Wyjątek złowionych: {0}", e); } wreszcie { Console.WriteLine ( "Rezultat: {0}", wynik); } } static void Main (string [] args) { DivNumbers D = nowe DivNumbers (); d.division (25, 0); Console.ReadKey (); } } }
Gdy powyższy kod jest kompilowany i wykonany, że daje następujące wyniki:
Wyjątek złowionych: System.DivideByZeroException: Próba dzielenia przez zero. co pl. Wynik: 0
Można również zdefiniować własne wyjątki. Zdefiniowany przez użytkownika klasy wyjątek pochodzi z klasyApplicationException.Poniższy przykład ilustruje ten punkt:
using System; nazw UserDefinedException { Klasa TestTemperature { static void Main (string [] args) { temp Temperatura Temperatura = new (); próbować { temp.showTemp (); } catch (TempIsZeroException e) { Console.WriteLine ( "TempIsZeroException: {0}", e.Message); } Console.ReadKey (); } } } public class TempIsZeroException: ApplicationException { TempIsZeroException publicznych (komunikat string): base (komunikat) { } } public class Temperatura { int temperatura = 0; public void showTemp () { if (temperatura == 0) { rzucać (nowy TempIsZeroException ( "Zero znaleziono Temperatura")); } więcej { Console.WriteLine ( "Temperatura: {0}", temperatura); } } }
Gdy powyższy kod jest kompilowany i wykonany, że daje następujące wyniki:
TempIsZeroException: znaleziono Zero Temperatura
Jeśli wyjątek jest bezpośrednio lub pośrednio pochodzi z klasySystem.Exception można wyrzucić obiekt.Można użyć instrukcji catch throw bloku rzucać aktualny obiekt w następujący sposób:
Catch (Exception e) { pl. rzut e }