Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Объектно-ориентированное программирование.docx
Скачиваний:
20
Добавлен:
31.08.2019
Размер:
112.85 Кб
Скачать
  1. Использование файла ресурсов.

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

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

В шаблон формы можно добавить следующие типы файлов ресурсов.

- Файлы HTML Файлы формата HTML можно использовать для отображения сведений в пользовательской области задач.

- Файлы XML Файлы формата XML можно использовать для заполнения элементов управления «Список», «Поле со списком» или «Раскрывающийся список». При использовании файла ресурсов формы, основанные на шаблоне формы, открываются быстрее, чем формы, использующие подключение данных для заполнения этих элементов.

  1. Обработка исключительных ситуаций. Стандартные классы исключений.

Обработка исключительных ситуаций (англ. exception handling) — механизм языков программирования, предназначенный для описания реакции программы на ошибки времени выполнения и другие возможные проблемы (исключения), которые могут возникнуть при выполнении программы и приводят к невозможности (бессмысленности) дальнейшей отработки программой её базового алгоритма.

Условно классы исключения можно разделить на три типа:

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

- Некотролируемые исключения – это исключения, которые возникают вследствие выполнения некорректного кода. Эти исключения, как правило, могут быть перехвачены, но исправлению подлежат лишь в единичных случаях. К таким исключениям относят исключения возникающие при обращении по нулевому указателю, вызове несуществующего или защищенного метода, в результате неверного приведения типов и т.д.

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

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

Итак, простейший блок исключений выглядит следующим образом:

tru

//Здесь ты пишешь код, в котором может произойти ошибка

except

//Если ошибка произошла, то выполнится этот код

end;

Рассмотрим простейший пример.

tru

х:=у/0;

except

//Здесь можно вывести сообщение об ошибке.

end;

х:=0;

Между tru и except у нас стоит маленькое действие— деление на ноль. Компьютер не умеет делать такие вещи (на ноль делить нельзя), поэтому произойдет ошибка и выполнится код между except и end. Если бы не было блока tru, то после возникновения ошибки процедура закончила бы выполнение, и все остальные операторы не были бы выполнены, как, например, в нашем случае — х:=о. При использовании tru ... except не будут выполнены только операторы между строкой, которая стала причиной ошибки, и except. После оператора except ... end все будет выполняться, как будто ничего не произошло. Если бы мы поменяли 0 на любое другое число, то ошибки бы не было, и код между except и end никогда не выполнился бы. Такой блок можно использовать не только для вывода сообщения о про изошедшей ошибке, он и исправить ситуацию. Например, в нашем случае, если между tru и except произошла ошибка, то между except и end можно присвоить переменной х значение по умолчанию на случай ошибки и продолжить выполнять процедуру с этим значением.

Теперь давайте разберемся с еще одним типом исключительных ситуаций — tru . . . finally.

tru

//Здесь пишется код, в котором может произойти ошибка

finally

//Этот код выполнится в любом случае

end;

Между tru и finally вы пишете свой сомнительный код, в котором может произойти ошибка. А между finally и end пишется код, который должен выполниться вне зависимости от результата кода между tru и finally. В этом случае мы не можем информировать пользователя об ошибке, потому что в разделе finally мы не знаем, произошла ошибка или нет. Зато работа с памятью упрощается