Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otvety_OOP.docx
Скачиваний:
8
Добавлен:
21.09.2019
Размер:
59.42 Кб
Скачать
  1. Константные члены класса: константные свойства, константные методы.

Практически любой объект содержит в себе данные, которые не должны меняться в процессе его использования. Значение их заранее предопределено разработчиком класса или устанавливается один раз в конструкторе при инициализации объекта. Для объявления таких данных в классе используется квалификатор const. Значение атрибутов с таким квалификатором могут быть только проинициализированы, а попытка изменения установленного при инициализации значения вызовет ошибку компиляции. Помимо константных данных класс может содержать константные функции-члены. Константные функции-члены - это такие функции класса, которые не изменяют внутреннее состояние (атрибуты класса) объекта класса. Для их объявления тоже используется квалификатор const , но записывается он в заголовке или прототипе функции после формальных параметров,

Из названия легко догадаться, что константы (constants), представлен-

ные ключевым словом const,— это поля, остающиеся постоянными в тече-

ние всего времени жизни приложения. Определяя что-либо как const, дос-

таточно помнить два правила. Во-первых, константа — это член, значение

которого устанавливается в период компиляции программистом или ком-

пилятором (в последнем случае это значение по умолчанию). Во-вторых,

значение члена-константы должно быть записано в виде литерала.

  1. Обработка исключений (try/catch/throw-конструкция).

Исключительная ситуация (или исключение) — это ошибка, которая возникает во

время выполнения программы. Используя С#-подсистему обработки исключи-

тельных ситуаций, с такими ошибками можно справляться. Преимущество подсистемы обработки исключений состоит в автоматизации созда-

ния большей части кода, который ранее необходимо было вводить в программы

"вручную". Например, в любом компьютерном языке при отсутствии такой подсисте-

мы практически каждый метод возвращал коды ошибок, и эти значения проверялись

вручную при каждом вызове метода. Такой подход довольно утомителен, кроме того,

при этом возможно возникновение ошибок. Обработка исключений упрощает "работу

над ошибками", позволяя в программах определять блок кода, именуемый обработчи-

ком исключении, который будет автоматически выполняться при возникновении опре-

деленной ошибки. В этом случае не обязательно проверять результат выполнения ка-

ждой конкретной операции или метода вручную. Если ошибка возникнет, ее долж-

ным образом обработает обработчик исключений. Еще одним преимуществом обработки исключительных ситуаций в С# является

определение стандартных исключений для таких распространенных программных

ошибок, как деление на нуль или попадание вне диапазона определения индекса. Программные инструкции, которые нужно проконтролировать на предмет исклю-

чений, помещаются в try-блок. Если исключение таки возникает в этом блоке, оно

дает знать о себе выбросом определенного рода информации. Это выброшенное исклю-

чение может быть перехвачено программным путем с помощью catch-блока и обрабо-

тано соответствующим образом. Системные исключения автоматически генерируются

С#-системой динамического управления. Чтобы сгенерировать исключение вручную,

используется ключевое слово throw. Любой код, который должен быть обязательно

выполнен при выходе из try-блока, помещается в блок finally. Ядром обработки исключений являются блоки t r y и catch. Эти ключевые слова

работают "в одной связке"; нельзя использовать слово t r y без catch или catch без

try. Вот каков формат записи try/catch-блоков обработки исключений:

t r y {

// Блок кода, подлежащий проверке на наличие ошибок.

}

catch {ExcepTypel exOb) {

// Обработчик для исключения типа ExcepTypel.

}

catch (ExcepType2 exOb) {

// Обработчик для исключения типа ЕхсерТуре2.

}….

Здесь ЕхсерТуре — это тип сгенерированного исключения. Как видно и^ формата записи try/catch-блоков, с try-блоком может быть связана не одна, а несколько catch-инструкций. Перехват одного из стандартных С#-исключений, как показала предыдущая про-

грамма, имеет побочный эффект: он предотвращает аварийное окончание программы.

При генерировании исключения оно должно быть перехвачено программным кодом.

Если программа не перехватывает исключение, оно перехвачивается С#-системой ди-

намического управления. Но дело в том, что система динамического управления со-

общит об ошибке и завершит программу.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]