Обробка винятків у C # - Як обробка винятків у роботі C # - Приклади

Зміст:

Anonim

Вступ про обробку винятків у C #

Ми не можемо сподіватися, що користувач весь час вводить правильні дані. Однак якщо неправильний або несподіваний ввід буде неправильно оброблений, весь код може вийти з ладу або пройти з нескінченним циклом. Це проблема, яка починається під час виконання програми через несподівані умови чи введення. Наприклад, результат нескінченний, коли число ділиться на нуль. Обробка винятків - це спосіб запропонувати програмі перейти до наступного блоку коду або забезпечити визначений результат у певних ситуаціях. Обробку винятків можна виконати за допомогою чотирьох ключових слів нижче.

  1. Спробуйте . Спробовий блок визначає тип виключення, який потрібно обробляти. Ось де виняток буде спійманий. Він завжди поєднується з одним блоком улову.
  2. Ловля: Після того, як пробний блок визначив тип і отримав один виняток під час виконання, блок catch підтвердить тип обробника винятків, який буде використовуватися. Цей блок також визначатиме, де слід обробляти виключення. Як вказує ключове слово, це схоже на вилучення винятку.
  3. Нарешті: Цей блок має певний набір тверджень. Незалежно від винятку, висловлювання, визначені у фінальному блоці, завжди виконуватимуться.
  4. Throw: Коли виняток вилучений, для показу виняткового винятку використовується ключове слово "мета".

Ви можете зберегти програмне забезпечення або код від безлічі клопотів, визначивши обробник винятків. Доброю практикою є визначення обробника винятків там, де можливий виняток.

Синтаксис
Щоразу, коли виняток піднімається, оголошений метод ловить виняток за допомогою ключового слова спробувати. Нам потрібно розмістити цю комбінацію з боку коду, очікується виняток. Ці коди називаються захищеним кодом. Ви також можете визначити більше одного ключового слова для одного ключового слова. Наприкінці вмісту буде завершена остаточна частина коду, яка буде виконана незалежно від того, чи буде винято виняток.

Код

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

Як працює обробка винятків у C #?

Існує багато заздалегідь визначених класів для обробки винятку. Спробуючий блок охоплює частину коду, яка може кинути виняток, а catch підтверджує, що робити, коли виняток вилучений. Заключна частина блоку визначає, що потрібно зробити, виявлений виняток чи ні, і частина кидка відображає повідомлення, якщо воно встановлено.

Класи винятку в C #

У C # доступно багато класів, за допомогою яких можна представити винятки. Усі класи походять від основного класу під назвою System. Виняток. Є кілька класів, які також є похідними від System.ApplicationException та System.SystemException.

Приклади класів виключень у C #

Винятки походять із системи. Клас винятку. Ось список загальних класів виключень 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 #. Ви також можете ознайомитись з іншими пов'язаними з нами статтями, щоб дізнатися більше -

  1. Перевантаження в C #
  2. C # Строкові функції
  3. Використання C #
  4. C # якщо заява
  5. Керівництво по обробці винятків у VB.NET
  6. Перевантаження і перезавантаження в C #
  7. Події VB.Net