Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Voprosy_-_Razrabotka_web-prilozheny_Java(1).doc
Скачиваний:
46
Добавлен:
25.03.2015
Размер:
1.23 Mб
Скачать
  1. Интернационализация текста.

Класс java.util.Locale позволяет учесть особенности региональных представлений алфавита, символов и проч. Автоматически виртуальная машина использует текущие региональные установки операционной системы, но при необходимости их можно изменять. Для некоторых стран региональные параметры устанавливаются с помощью констант, например: Locale.US, Locale.FRANCE. Для других стран объект Locale нужно создавать с по- мощью конструктора: Locale myLocale = new Locale("bel", "BY"); Получить доступ к текущему варианту региональных параметров можно сле- дующим образом: Locale current = Locale.getDefault(); Если, например, в ОС установлен регион «Россия» или в приложении с помощью new Locale("ru", "RU"), то следующий код (при выводе результатов вы- полнения на консоль)

current.getCountry();//код региона

current.getDisplayCountry();//название региона

current.getLanguage();//код языка региона

current.getDisplayLanguage();//название языка региона

позволяет получить информацию о регионе в виде:

RU

Россия

ru

русский

Для создания приложений, поддерживающих несколько языков, существует целый ряд решений. Самое логичное из них – использование взаимодействия классов java.util.ResourceBundle и Locale. Класс ResourceBundle предназначен в первую очередь для работы с текстовыми файлами свойств (рас- ширение .properties). Каждый объект ResourceBundle представляет со- бой набор объектов соответствующих подтипов, которые разделяют одно и то же базовое имя, к которому можно получить доступ через поле parent. Следующий список показывает возможный набор соответствующих ресурсов с базовым име- нем text. Символы, следующие за базовым именем, показывают код языка, код страны и тип операционной системы. Например, файл text_de_CH.properties соответствует объекту Locale, заданному кодом языка немецкого (de) и кодом страны Швейцарии (CH).

Чтобы выбрать определенный объект ResourceBundle, следует вызвать метод ResourceBundle.getBundle(параметры). Следующий фрагмент выбирает text объекта ResourceBundle для объекта Locale, который соот- ветствует английскому языку, стране Канаде и платформе UNIX. Locale currentLocale = new Locale("en", "CA", "UNIX"); ResourceBundle rb = ResourceBundle.getBundle("text", currentLocale);

  1. Иерархия и способы обработки. Оператор throw.Ключевое слово finally.

Исключительные ситуации (исключения) возникают во время выполнения программы, когда возникшая проблема не может быть решена в текущем контек- сте и невозможно продолжение работы программы. Примерами являются особо «популярные»: попытка индексации вне границ массива, вызов метода на нулевой ссылке или деление на нуль. При возникновении исключения создается объект, описывающий это исключение. Затем текущий ход выполнения приложения оста- навливается, и включается механизм обработки исключений. При этом ссылка на объект-исключение передается обработчику исключений, который пытается ре- шить возникшую проблему и продолжить выполнение программы. Если в классе используется метод, в котором может возникнуть проверяемая исключительная ситуация, но не предусмотрена ее обработка, то ошибка возникает еще на этапе компиляции. При создании такого метода программист должен включить в код обработку исключений, которые могут генерировать этот метод, или передать об- работку исключения на более высокий уровень методу, вызвавшему данный метод. Каждой исключительной ситуации поставлен в соответствие некоторый класс. Если подходящего класса не существует, то он может быть создан разра- ботчиком. Все исключения являются наследниками суперкласса Throwable и его подклассов Error и Exception из пакета java.lang.

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

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

Обычно используется один из трех способов обработки исключений:  перехват и обработка исключения в блоке try-catch метода;  объявление исключения в секции throws метода и передача вызыва- ющему методу (для проверяемых исключений);  использование собственных исключений.

В программировании часто возникают ситуации, когда программисту необ- ходимо самому инициировать генерацию исключения для указания, например, на заведомо ошибочный результат выполнения операции, на некорректные значения параметра метода и др. Исключительную ситуацию можно создать с помощью оператора throw, если объект-исключение уже существует, или инициализиро- вать его прямо после этого оператора. Оператор throw используется для генера- ции исключения. Для этого может быть использован объект класса Throwable или объект его подкласса, а также ссылки на них. Общая форма записи инструк- ции throw, генерирующей исключение: throw объектThrowable;

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

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

Каждому разделу try должен соответствовать по крайней мере один раздел catch или блок finally. Блок finally часто используется для закрытия файлов и освобождения других ресурсов, захваченных для временного использо- вания в начале выполнения метода. Код блока выполняется перед выходом из метода даже в том случае, если перед ним были выполнены инструкции вида re- turn, break, continue.

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