Читайте также:
|
|
Чтобы продемонстрировать использование System.Exception, обратимся к проекту CarExample а точнее к методу SpeedUp() класса Саг.
Имея функционирующий класс Саг, давайте рассмотрим простейший способ генерации исключения. Текущая реализация метода SpeedUp() предусматривает просто отображение сообщения об ошибке, когда предпринимается попытка разогнать автомобиль (объект Саг) до скорости, превышающей максимальный предел.
Для изменения этого метода так, чтобы при попытке разогнать автомобиль до скорости, превышающий установленный в классе Саг предел, генерировалось исключение, потребуется создать и сконфигурировать новый экземпляр класса System.Exception и установить значение доступного только для чтения свойства Message через конструктор класса. Чтобы объект ошибки отправлялся обратно вызывающей стороне, в С# используется ключевое слово throw.
(этот код вставляем в проект CarExample, в класс Car)
Задание!!!: протестировать, исправить возможные ошибки
Прежде чем переходить к рассмотрению перехвата данного исключения в вызывающем коде, необходимо отметить несколько интересных моментов. При генерации исключения то, как будет выглядеть ошибка и когда она должна выдаваться, решает программист. В рассматриваемом примере предполагается, что при попытке увеличить скорость автомобиля (объекта Саг), который уже вышел из строя, должен генерироваться объект System.Exception для уведомления о том, что метод SpeedUp() не может быть продолжен (это предположение может оказаться как подходящим, так и нет, в зависимости от создаваемого приложения).
В качестве альтернативы метод SpeedUp() можно было бы реализовать и так, чтобы он производил автоматическое восстановление, не выдавая перед этим никакого исключения. По большому счету, исключения должны генерироваться только в случае возникновения более критичных условий (например, отсутствии нужного файла, невозможности подключиться к базе данных и т.п.). Принятие решения о том, что должно служить причиной генерации исключения, требует серьезного продумывания и поиска веских оснований на стадии проектирования. Для преследуемых сейчас целей давайте считать, что попытка увеличить скорость неисправного автомобиля является вполне оправданной причиной для выдачи исключения.
Дата добавления: 2015-07-25; просмотров: 56 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Составляющие процесса обработки исключений в .NET | | | Перехват исключений |