Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
⊗csPmEcEF 400 of 436 menu
◀ ▶

Исключение внутри функции в C#

Проверку аргумента прячут внутрь функции. Если значение не годится, функция выбрасывает исключение, а вызывающий код в try-catch решает, что показать:

int GetScore(Dictionary<string, int> dct, string key) { if (!dct.ContainsKey(key)) { throw new ArgumentException("unknown key"); } return dct[key]; } Dictionary<string, int> dct = new() { ["a"] = 10 }; try { Console.WriteLine(GetScore(dct, "z")); } catch (ArgumentException) { Console.WriteLine("bad arg"); }

Деление с проверкой делителя часто оформляют отдельной функцией:

int SafeDiv(int a, int b) { if (b == 0) { throw new ArgumentException("zero divisor"); } return a / b; } try { Console.WriteLine(SafeDiv(8, 0)); } catch (ArgumentException ex) { Console.WriteLine(ex.Message); }

Создайте функцию Divide с двумя целыми. При b == 0 выбросьте new ArgumentException("zero"). Вызовите с нулевым делителем в try-catch и выведите "fail" при ошибке.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить