try — catch (...)

Исключительная ситуация или исключение — это ошибка, которая возникает во время выполнения программы.
В языке C# все исключения являются объектами класса System.Exception
Для каждого исключения может применяться специальный тип исключения.
FormatException Входная строка имела неверный формат
DivideByZeroException Попытка деления на нуль
IndexOutOfRangeException Индекс оказался за границами массива
OverflowException Произошло арифметическое переполнение
NullReferenceException Попытка использовать пустую ссылку
OutOfMemoryException Недостаточно свободной памяти
Скрыть

Показать

Копировать
  Main.cs  
  • using System;
  •  
  • class One {
  •  string symbol;
  •  decimal a;
  •  decimal b;
  •  public One(string arg0, decimal arg1, decimal arg2) {
  •   symbol = arg0;
  •   a = arg1;
  •   b = arg2;
  •  }
  •  public void Result() {
  •   if(symbol!="+" & symbol!="-" & symbol!="*" & symbol!="/" & symbol!="%") {
  •    throw new Exception("Вы ввели не правильный символ!");
  •   }
  •   else {
  •    try {
  •     if(symbol == "+") {
  •      Console.WriteLine("{0} {1} {2} = {3}", a, symbol, b, (a + b));
  •     }
  •     else if(symbol == "-") {
  •      Console.WriteLine("{0} {1} {2} = {3}", a, symbol, b, (a - b));
  •     }
  •     else if(symbol == "*") {
  •      Console.WriteLine("{0} {1} {2} = {3}", a, symbol, b, (a * b));
  •     }
  •     else if(symbol == "/") {
  •      Console.WriteLine("{0} {1} {2} = {3}", a, symbol, b, (a / b));
  •     }
  •     else if(symbol == "%") {
  •      Console.WriteLine("{0} {1} {2} = {3}", a, symbol, b, (a % b));
  •     }
  •    }
  •    catch(DivideByZeroException exc) {
  •     Console.WriteLine(exc.Message);
  •    }
  •   }
  •  }
  • }
  •  
  • class Program {
  •  public static int Main() {
  •   Console.Write("выберите арифметическое действие + - * / % : ");
  •   string symbol = Console.ReadLine();
  •   Console.Write("введите число : ");
  •   decimal a = decimal.Parse(Console.ReadLine());
  •   Console.Write("введите число : ");
  •   decimal b = decimal.Parse(Console.ReadLine());
  •   One O = new One(symbol, a, b);
  •   O.Result();
  •   Console.ReadKey();
  •   return 0;
  •  }
  • }
выберите арифметическое действие + - * / % : /
введите число : 10
введите число : 0
Попытка деления на нуль.