Создание пользовательских исключений, два…

Создание пользовательских исключений, два…

Тип CarIsDeadException переопределяет свойство System.Exception.Message, чтобы установить пользовательское сообщение об ошибке. Однако задачу можно упростить, установив родительское свойство Message через входной параметр конструктора. В результате нам не придется делать ничего, кроме следующего.

public class CarIsDeadException: ApplicationException {

 public CarIsDeadException() {}

 public CarIsDeadException(string message) : base (message) {}

}

Обратите внимание на то, что теперь мы не определяем строковую переменную для представления сообщения и не переопределяем свойство Message. Вместо этого конструктору базового класса просто передается параметр. В рамках такого подхода пользовательский класс исключений представляет собой немногим большее, чем класс с уникальным именем, полученный из System.ApplicationException без каких бы то ни было членов-переменных (и переопределений базового класса).

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

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

7.2.6. Создание пользовательских цепочек в таблице filter

Из книги Iptables Tutorial 1.1.19 автора Andreasson Oskar

7.2.6. Создание пользовательских цепочек в таблице filter Итак, у вас перед глазами наверняка уже стоит картинка движения пакетов через различные цепочки, и как эти цепочки взаимодействуют между собой! Вы уже должны ясно представлять себе цели и назначение данного сценария.


Быстрый поиск переходов и создание пользовательских корзин

Из книги Видеосамоучитель монтажа домашнего видео в Adobe Premiere Pro CS3 автора Днепров Александр Г

Быстрый поиск переходов и создание пользовательских корзин Поиск нужного видеоперехода на вкладке Effects (Эффекты) занимает некоторое время. Необходимо отыскать папку группы перехода, открыть ее, найти нужный переход. Быстро найти нужный переход можно по его названию.1. В


Создание пользовательских исключений, два…

Из книги Язык программирования С# 2005 и платформа .NET 2.0. [3-е издание] автора Троелсен Эндрю

Создание пользовательских исключений, два… Тип CarIsDeadException переопределяет свойство System.Exception.Message, чтобы установить пользовательское сообщение об ошибке. Однако задачу можно упростить, установив родительское свойство Message через входной параметр конструктора. В


Создание пользовательских исключений, три!

Из книги Word 2007.Популярный самоучитель автора Краинский И

Создание пользовательских исключений, три! Если вы хотите построить "педантично точный" пользовательский класс исключения, то созданный вами тип должен соответствовать лучшим образцам, использующим исключения .NET. В частности, ваше пользовательское исключение должно


Создание пользовательских индексаторов

Из книги Основы объектно-ориентированного программирования автора Мейер Бертран

Создание пользовательских индексаторов Как программисты, мы прекрасно знаем, что с помощью индексов можно получить доступ к отдельным элементам, содержащимся в стандартном массиве.// Объявление массива целых значений.int[] myInts = {10, 9, 100, 432, 9874};// Использование операции [] для


Создание пользовательских подпрограмм преобразования

Из книги iOS. Приемы программирования автора Нахавандипур Вандад

Создание пользовательских подпрограмм преобразования В C# есть два ключевых слова, explicit и implicit, предназначенные для управления тем, как типы должны отвечать на попытки преобразования. Предположим, что у нас есть следующие определения структур.public struct Rectangle { // Открыты для


Создание пользовательских обобщенных коллекций

Из книги Программирование на языке Ruby автора Е.А. Роганов, Н.А. Роганова Е.А. Роганов, Н.А. Роганова

Создание пользовательских обобщенных коллекций Итак, пространство имен System.Collections.Generic предлагает множество типов, позволяющих создавать эффективные контейнеры, удовлетворяющие требованиям типовой безопасности. С учетом множества доступных вариантов очень велика


Создание пользовательских атрибутов

Из книги QT 4: программирование GUI на С++ автора Бланшет Жасмин

Создание пользовательских атрибутов Первым шагом процесса построения пользовательского атрибута является создание нового класса, производного от System.Attribute. В продолжение автомобильной темы, используемой в этой книге, мы создадим новую библиотеку классов C# с именем


Создание пользовательских элементов управления Windows Forms

Из книги автора

Создание пользовательских элементов управления Windows Forms Платформа .NET предлагает для разработчиков очень простой способ создания пользовательских элементов интерфейса. В отличие от (теперь уже считающихся устаревшими) элементов управления ActiveX, для элементов


Создание пользовательских диалоговых окон

Из книги автора

Создание пользовательских диалоговых окон Теперь, когда вы понимаете роль базовых элементов управления Windows Forms и суть процесса построения пользовательских элементов управления, давайте рассмотрим вопрос создания пользовательских диалоговых окон. Здесь хорошей


Создание пользовательских стилей

Из книги автора

Создание пользовательских стилей Несмотря на то что в каждой версии Word количество заготовленных стилей увеличивается, весьма вероятно, что вы не найдете среди них именно то, что нужно вам в данный момент. По этой причине в Microsoft Word предусмотрена также возможность


Создание пользовательских шаблонов

Из книги автора

Создание пользовательских шаблонов Благодаря шаблонам можно сэкономить много времени. Например, если вы постоянно работаете с какой-нибудь организацией и каждый раз вводите стандартное приветствие, реквизиты и т. д., удобно будет создать собственный шаблон на основе


Константы пользовательских классов

Из книги автора

Константы пользовательских классов Символические константы полезны не только при работе с предопределенными типами, такими как INTEGER. Они нужны и тогда, когда их значениями являются объекты классов, созданных разработчиком. В этом случае решение не столь


Глава 2. Создание динамических и интерактивных пользовательских интерфейсов

Из книги автора

Глава 2. Создание динамических и интерактивных пользовательских интерфейсов 2.0. Введение Когда iPhone только появился на рынке, он поистине задал стандарт интерактивности в мобильных приложениях. Приложения iOS были и остаются поразительно интерактивными — вы можете на


2. Модификация и создание пользовательских классов

Из книги автора

2. Модификация и создание пользовательских классов Ruby является объектно-ориентированным языком программирования. Давайте рассмотрим особенности представления классов.Объекты и классыВ реальной жизни все объекты обладают индивидуальными свойствами. Но, введя


Глава 5. Создание пользовательских виджетов

Из книги автора

Глава 5. Создание пользовательских виджетов В данной главе объясняются способы создания пользовательских виджетов с помощью средств разработки Qt. Пользовательские виджеты могут создаваться путем определения подкласса существующего виджета Qt или путем определения