Завдання: Обробка Помилок
Синтаксис try-catch має додаткову можливість, яка дозволяє обробляти конкретні типи помилок окремо:
index.cs
1234567891011121314151617try { // code } catch (ExceptionType errorVarName) { // code } catch (ExceptionType errorVarName) { // code } ... finally { // code }
Тип Exception, який використовувався у попередньому розділі, перехоплює всі види помилок, проте існують підтипи Exception, які обробляють більш специфічні помилки. Ось деякі поширені типи виключень:
DivideByZeroException: ділення на нуль;FileNotFoundException: файл, до якого здійснюється доступ, не існує;KeyNotFoundException: ключ у словнику відсутній;IndexOutOfRangeException: вказаний індекс масиву або списку є недійсним.
Термін errorVarName — це змінна, яка зберігає об'єкт Exception і містить інформацію, таку як повідомлення про помилку, яке можна отримати через errorVarName.Message. Це можна опустити, якщо ця інформація не використовується:
index.cs
12345678910111213try { // code } catch (ExceptionType) { // code } ... finally { // code }
Ось приклад використання такого блоку try-catch:
index.cs
123456789101112131415161718192021222324252627using System; class Program { static void Main(string[] args) { int[] myArray = { 0, 2, 4, 6, 8, 10 }; int i = 0; while (true) { try { Console.Write(myArray[i] / i + " "); i++; } catch(DivideByZeroException) { i++; } catch(IndexOutOfRangeException) { break; } } } }
Тепер, використовуючи ці концепції, заповніть пропуски відповідними типами винятків у наведеному коді, щоб виконати завдання.
index.cs
1234567891011121314151617181920212223242526272829303132333435using System; using System.Collections.Generic; class Program { static void Main(string[] args) { int[] numbers = { 1, 2, 5, 7, 9 }; var numberNames = new Dictionary<int, string>(); numberNames.Add(1, "One"); numberNames.Add(2, "Two"); numberNames.Add(5, "Five"); numberNames.Add(9, "Nine"); int i = 0; while (true) { try { int key = numbers[i]; Console.WriteLine($"{key} is {numberNames[key]}"); i++; } catch (___) { break; } catch (___) { numberNames.Add(7, "Seven"); } } } }
Використовуйте відповідний тип винятку для кожного блоку catch. Прочитайте код і визначте, який блок catch найкраще підходить для обробки певного типу винятку.
index.cs
1234567891011121314151617181920212223242526272829303132333435using System; using System.Collections.Generic; public class HelloWorld { public static void Main(string[] args) { int[] numbers = { 1, 2, 5, 7, 9 }; var numberNames = new Dictionary<int, string>(); numberNames.Add(1, "One"); numberNames.Add(2, "Two"); numberNames.Add(5, "Five"); numberNames.Add(9, "Nine"); int i = 0; while (true) { try { int key = numbers[i]; Console.WriteLine($"{key} is {numberNames[key]}"); i++; } catch (IndexOutOfRangeException) { break; } catch (KeyNotFoundException) { numberNames.Add(7, "Seven"); } } } }
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Awesome!
Completion rate improved to 2.04
Завдання: Обробка Помилок
Свайпніть щоб показати меню
Синтаксис try-catch має додаткову можливість, яка дозволяє обробляти конкретні типи помилок окремо:
index.cs
1234567891011121314151617try { // code } catch (ExceptionType errorVarName) { // code } catch (ExceptionType errorVarName) { // code } ... finally { // code }
Тип Exception, який використовувався у попередньому розділі, перехоплює всі види помилок, проте існують підтипи Exception, які обробляють більш специфічні помилки. Ось деякі поширені типи виключень:
DivideByZeroException: ділення на нуль;FileNotFoundException: файл, до якого здійснюється доступ, не існує;KeyNotFoundException: ключ у словнику відсутній;IndexOutOfRangeException: вказаний індекс масиву або списку є недійсним.
Термін errorVarName — це змінна, яка зберігає об'єкт Exception і містить інформацію, таку як повідомлення про помилку, яке можна отримати через errorVarName.Message. Це можна опустити, якщо ця інформація не використовується:
index.cs
12345678910111213try { // code } catch (ExceptionType) { // code } ... finally { // code }
Ось приклад використання такого блоку try-catch:
index.cs
123456789101112131415161718192021222324252627using System; class Program { static void Main(string[] args) { int[] myArray = { 0, 2, 4, 6, 8, 10 }; int i = 0; while (true) { try { Console.Write(myArray[i] / i + " "); i++; } catch(DivideByZeroException) { i++; } catch(IndexOutOfRangeException) { break; } } } }
Тепер, використовуючи ці концепції, заповніть пропуски відповідними типами винятків у наведеному коді, щоб виконати завдання.
index.cs
1234567891011121314151617181920212223242526272829303132333435using System; using System.Collections.Generic; class Program { static void Main(string[] args) { int[] numbers = { 1, 2, 5, 7, 9 }; var numberNames = new Dictionary<int, string>(); numberNames.Add(1, "One"); numberNames.Add(2, "Two"); numberNames.Add(5, "Five"); numberNames.Add(9, "Nine"); int i = 0; while (true) { try { int key = numbers[i]; Console.WriteLine($"{key} is {numberNames[key]}"); i++; } catch (___) { break; } catch (___) { numberNames.Add(7, "Seven"); } } } }
Використовуйте відповідний тип винятку для кожного блоку catch. Прочитайте код і визначте, який блок catch найкраще підходить для обробки певного типу винятку.
index.cs
1234567891011121314151617181920212223242526272829303132333435using System; using System.Collections.Generic; public class HelloWorld { public static void Main(string[] args) { int[] numbers = { 1, 2, 5, 7, 9 }; var numberNames = new Dictionary<int, string>(); numberNames.Add(1, "One"); numberNames.Add(2, "Two"); numberNames.Add(5, "Five"); numberNames.Add(9, "Nine"); int i = 0; while (true) { try { int key = numbers[i]; Console.WriteLine($"{key} is {numberNames[key]}"); i++; } catch (IndexOutOfRangeException) { break; } catch (KeyNotFoundException) { numberNames.Add(7, "Seven"); } } } }
Дякуємо за ваш відгук!