Как try catch вмонтировать в калькулятор?
Написал такой простой калькулятор. Мне нужно сюда добавить вычисление корня, а также использовать механизм Try/Catch. По идее, Try/Catch обрабатывает исключения, такие как деление на 0 т.д., но не знаю, как его здесь реализовать. Буду благодарен, если объясните на коде наглядно.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;
namespace Rextester
{
public class Program
{
public static void Main(string[] args)
{
double a, b;
char z;
Console.WriteLine("Введите 1 число ");
a = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("Введите действие (+, -, *, /) ");
z = Convert.ToChar(Console.ReadLine());
Console.WriteLine("Введите 2 число ");
b = Convert.ToDouble(Console.ReadLine());
switch (z)
{
case '+':
Console.WriteLine("{0}+{1}={2}", a, b, a + b);
break;
case '-':
Console.WriteLine("{0}-{1}={2}", a, b, a - b);
break;
case '*':
Console.WriteLine("{0}*{1}={2}", a, b, a * b);
break;
case '/':
Console.WriteLine("{0}/{1}={2}", a, b, a / b);
break;
default:
Console.WriteLine("Ошибка");
break;
}
Console.ReadKey();
}
}
}
Ответы (2 шт):
Автор решения: CrazyElf
→ Ссылка
Добавить к строке, где возможно деление на ноль, блок try/catch:
try
{
Console.WriteLine("{0}/{1}={2}", a, b, a / b);
}
catch(DivideByZeroException)
{
Console.WriteLine("Ошибка - на ноль делить нельзя!");
}
Автор решения: aepot
→ Ссылка
public class Program
{
public static void Main(string[] args)
{
try
{
double a, b = 0;
char z;
Console.Write("Введите 1 число ");
a = double.Parse(Console.ReadLine());
Console.Write("Введите действие (+, -, *, /, s) ");
z = Console.ReadKey().KeyChar;
Console.WriteLine();
if (z != 's')
{
Console.Write("Введите 2 число ");
b = double.Parse(Console.ReadLine());
}
switch (z)
{
case '+':
Console.WriteLine("{0}+{1}={2}", a, b, a + b);
break;
case '-':
Console.WriteLine("{0}-{1}={2}", a, b, a - b);
break;
case '*':
Console.WriteLine("{0}*{1}={2}", a, b, a * b);
break;
case '/':
Console.WriteLine("{0}/{1}={2}", a, b, a / b);
break;
case 's':
Console.WriteLine("sqrt({0})={1}", a, Math.Sqrt(a));
break;
default:
Console.WriteLine("Ошибка");
break;
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Console.ReadKey();
}
}