Генерирование исключений вручную C#

Генерирование исключений вручную C#, Генерирование исключений C#, Исключения C#, C# Полное руководство Герберт Шилдт, Язык программирования C#, C# полное руководство

В приведенных выше примерах перехватывались исключения, генерировавшиеся исполняющей системой автоматически. Но исключение может быть сгенерировано и вручную с помощью оператора throw. Ниже приведена общая форма такого генерирования.

throw exceptOb;

где в качестве exceptOb должен быть обозначен объект класса исключений, производного от класса Exception.
Ниже приведен пример программы, в которой демонстрируется применение оператоpa throw для генерирования исключения DivideByZeroException.

// Сгенерировать исключение вручную.

using System;

class ThrowDemo {
   static void Main() {
      try {
         Console.WriteLine("До генерирования исключения.");
     throw new DivideByZeroException ();
      }
      catch (DivideByZeroException) {
         Console.WriteLine("Исключение перехвачено.");
      }
      Console.WriteLine("После пары операторов try/catch.");
   }
}


Вот к какому результату приводит выполнение этой программы:
   До генерирования исключения.
   Исключение перехвачено.
   После пары операторов try/catch.

Обратите внимание на то, что исключение DivideByZeroException было сгенерировано с использованием ключевого слова new в операторе throw. Не следует забывать, что в данном случае генерируется конкретный объект, а следовательно, он должен быть создан перед генерированием исключения. Это означает, что сгенерировать исключение только по его типу иельзя. В примере для создания объекта DivideByZeroException был автоматически вызван конструктор, используемый по умолчанию, хотя для генерирования исключений доступны и другие конструкторы.