Обработка исключительных ситуаций (блок try и catch) - C#
Формулировка задачи:
Еще раз здравуствуйте! Опять я на пути изучения великого и могучего Си-шарпа, и опять наткнулся на подвоный камень.
В программе вычисления значения функции на заданном интервале с заданным шагом должно обрабатываться исключение деления на ноль. В данной функции должно произойти при х=0,5. Однако, программа совершенно не хочет заходить в блок Cath, чтобы обработать исключение и вывести сообщение об этом. Вместо этого, он в ответе выдает "бесконечность".
static void Main(string[] args) { Console.WriteLine("Введите интервал аргумента функции [a,b] с шагом h"); Console.Write("a="); double a = double.Parse(Console.ReadLine()); Console.Write("b="); double b = double.Parse(Console.ReadLine()); Console.Write("h="); double h = double.Parse(Console.ReadLine()); for (double i = a; i <= b; i = i + h) { if (i < 0.5) { Console.WriteLine("y({0})=Функция неопределена", i); continue; } try { Console.WriteLine("y({0})={1}", i, i / Math.Sqrt(2 * i - 1)); } catch (DivideByZeroException) { Console.WriteLine("y({0})=Деление на ноль", i); } } Console.ReadLine(); } } }
Решение задачи: «Обработка исключительных ситуаций (блок try и catch)»
textual
Листинг программы
try { double temp = Math.Sqrt(2 * i - 1); if (temp == 0) throw new DivideByZeroException(); Console.WriteLine("y({0})={1}", i, i / temp); } catch (DivideByZeroException) { Console.WriteLine("y({0})=Деление на ноль", i); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д