Въведение в работата с изключения в C #
Не можем да очакваме от потребителя да въвежда правилните данни през цялото време. Ако обаче неправилният или неочакваният вход не се обработва правилно, целият код може да се срине или да премине с безкраен цикъл. Това е проблем, който започва при изпълнение на програмата поради неочаквани условия или входни данни. Например резултатът е безкраен, когато числото се дели на нула. Работата с изключения е начинът да се каже на програмата да премине към следващия блок код или да предостави определения резултат в определени ситуации. Обработката на изключения може да се извърши с под четири ключови думи.
- Опитайте: пробният блок определя вида на изключението, което ще се обработва. Именно тук би се хванало изключението. Винаги ще се свързва с един блок за улов.
- Улов: След като пробният блок дефинира типа и получи едно изключение по време на изпълнението, блокът за хващане ще потвърди типа на обработващия изключение, който ще се използва. Този блок също ще определи къде трябва да се обработва изключението. Както показва ключовата дума, това е като улавяне на изключението.
- И накрая: Този блок има някакъв набор от изявления. Независимо от изключението е хвърлено, изявленията, дефинирани в крайния блок, винаги ще се изпълняват.
- Хвърляне: Когато е хванато изключение, за показване на изключеното изключение се използва ключовата дума хвърляне.
Можете да запишете софтуера или кода си от много караници, като дефинирате манипулатора на изключенията. Добра практика е да се дефинира обработвач на изключения, където е възможно.
Синтаксис
Всеки път, когато изключението е повдигнато, деклариран метод улавя изключението с помощта на ключовата дума опитайте. Трябва да поставим тази комбинация от страна на кода, очаква се изключение. Тези кодове се наричат защитен код. Можете също така да дефинирате повече от една ключова дума за една пробна ключова дума. В края на съдържанието финалната част на кода ще бъде изпълнена и ще бъде изпълнена независимо дали е повдигнато или не изключение.
код
try
(
//Define the statement that could cause an exception.
)
Catch(ExceptionName secondException)
(
//error handling code
)
Finally
(
//define the statement that will be executed
)
Как работи обработката на изключения в C #?
Има много предварително определени класове за работа с изключението. Пробният блок обхваща частта от кода, която може да хвърли изключение и уловът потвърждава какво да направите, когато изключение бъде хванато. Последната част на блока определя какво трябва да се направи, независимо дали изключението е открито или не и частта за хвърляне показва съобщението, ако е зададено такова.
Изключителни класове в C #
В C # има много класове, чрез които могат да бъдат представени изключения. Всички класове са получени от основния клас, наречен System. Изключение. Има няколко класа, които също са получени от System.ApplicationException и System.SystemException.
Примери за класове на изключения в C #
Изключенията се получават от System. Изключителен клас. Ето списъка на C # общи класове за изключения.
изключение | описание |
System.DivideByZeroException | обработва грешката, когато се опитва да раздели число на нула. |
System.NullReferenceException | обработва грешката при позоваване на обект, който не съществува. |
System.InvalidCastException | обработва грешката при опит за невалидно кастинг. |
System.IO.IOException | Всички грешки вход-изход се обработват. |
System.FieldAccessException | При опит за достъп до неоторизиран клас |
1. C # опитайте / уловете
Обработката на изключенията се извършва чрез опит и улавя блок в C #. Пробният блок в C # се използва за поставяне на кода, който може да хвърли изключение. Изключението се обработва от блока за улов.
C # пример без опит / улов
Код:
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");
)
)
изход:
C # опит / улов пример
код
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");
)
)
изход:
Използване на класове за изключения в C # накрая
Той ще ви покаже съобщението, независимо че изключението е хванато.
код
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");
)
)
изход:
1. C # накрая пример, ако изключението не се обработва
код
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");
)
)
изход:
2. Изключение, дефинирано от C #
Системата не само е дефинирана, но и ние можем да зададем собствено изключение. Трябва обаче да наследим кода, за да постигнем това.
код
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");
)
)
изход:
заключение
На всяко място, което мислите, че може да генерира грешка поради нещо, трябва да се използва обработващ изключение. От съществено значение е да използвате изявление за улов и да започнете от общо към конкретно изключение. Целият ви софтуер или код е изложен на риск без подходящо обработване на изключения.
Препоръчителни статии
Това е ръководство за работа с изключения в C #. Тук обсъждаме как работи обработката на изключенията в C #, примери и използване на c #. Можете също да разгледате и другите ни свързани статии, за да научите повече-
- Претоварване в C #
- C # струнни функции
- Използване на C #
- C # ако изявление
- Ръководство за работа с изключения във VB.NET
- Претоварване и отмяна в C #
- VB.Net Събития