Определить настраиваемые классы исключений в C#

Пример Выброс стандартного исключения в C# объясняет, как бросить исключения, чтобы сообщить программе о неожиданных ошибках. Пример См. Иерархию классов исключений для в C# перечислены некоторые полезные классы исключений.

Но что, если ни один из этих классов не соответствует вашей ситуации? В этом случае вы можете определить собственный собственный класс исключений.

Выведите свой класс из System.Exception или другого разумного базового класса исключений. Дайте ему конструкторы, которые вызывают конструкторы базового класса.

Этот пример изменяет пример Разбирайте размеры файлов в КБ, МБ, ГБ и т. д. На C# , поэтому он генерирует настраиваемое исключение UnknownExtensionException, если вы вводите размер файла с неизвестным количеством, например, 1.23 EX , Следующий код показывает класс UnknownExtensionException.

Класс начинается с определения поля Extension, которое будет содержать неизвестное расширение.

Далее класс определяет четыре конструктора. Каждый принимает неизвестное расширение в качестве первого параметра. Другие параметры позволяют конструктору вызывать различные конструкторы, предоставляемые базовым классом.

Вы можете решить, какие конструкторы вы хотите предоставить. Обычно настраиваемые классы исключений должны включать хотя бы один конструктор, который не принимает никаких параметров, а другой, который принимает сообщение в качестве параметра. Третий, который принимает сообщение и внутреннее исключение в качестве параметров, также является общим. Конструктор, который принимает информацию SerializationInfo и StreamingContext, позволяет десериализовать класс.

Этот пример несколько усложняет конструкторы, включив параметр extension.

Основная программа использует следующий код для демонстрации класса UnknownExtensionException.

В коде используется блок try-catch для поиска ошибок. Его первый блок catch выглядит специально для UnknownExtensionException. Когда он находит такое исключение, он отображает сообщение, настроенное для него.

Второй блок catch программы ищет другие исключения и, если он находит его, отображает сообщение об исключении.

В этом примере UnknownExtensionException выводится из FormatException, поэтому блок catch, который ищет FormatException, также поймает UnknownExtensionException .

Некоторые дополнительные советы:

Источник: http://csharphelper.com/blog/2017/09/define-custom-exception-classes-in-c/

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)

Add a Comment

Ваш e-mail не будет опубликован. Обязательные поля помечены *