Delphi | Сети | ПК | Маршрутизаторы | Моделирование | Протоколы | Экспертные системы | Удаленный доступ | Доменные имена
Аплеты | SQL | Надежность | Задачи | Информационные процессы | JAVA | Отказы изделия | Расчет надежности показателей | Инфсис

Обработка исключительных ситуаций в Java Порядок обработки исключений

Как правило, в производных от Applet классах, кроме метода paint, переопределяется также метод init. Этот метод служит для инициализации апплета и является "точкой входа" в программу - именно этот метод вызывается первым при выполнении апплета (конструкторы для апплетов обычно не используют). Кроме того, иногда переопределяют методы start и stop (например, при работе с потоками). Метод destroy вызывается при выгрузке апплета.

Порядок обработки исключений

Блоки catch () {} перехватывают исключения в порядке написания этих блоков. Это правило приводит к интересным результатам.

В листинге 16.2 мы записали два блока перехвата catchou и оба блока выполнялись при возникновении соответствующего исключения. Это происходило по тому, что классы-исключения ArithmeticException и ArrayindexOutofBoundsException находятся на разных ветвях иерархии исключений. Иначе обстоит дело, если блоки catch() {} перехватывают исключения, расположенные на одной ветви. Если в листинге 16.4 после блока, перехватывающего RuntimeException, поместить блок, обрабатывающий выход индекса за пределы:

try{

// Операторы, вызывающие исключения 

}catch(RuntimeException re){

// Какая-то обработка 

}catch(ArrayindexOutofBoundsException ae){

// Никогда не будет выполнен! 

}

то он не будет выполняться, поскольку исключение этого типа является, к тому же, исключением общего типа RuntimeException и будет перехватываться Предыдущим блоком catch () {}.

Существует другой способ передачи данных из HTML-страницы в апплет. Средствами языка клиентских сценариев JavaScript можно вызывать любой public-метод апплета, который определен в HTML-документе. Тем самым дается возможность перестройки, изменения состояния апплета уже после загрузки его в браузер. Для этого требуется в тэге <applet> указать значение атрибута name. После этого любой public-метод апплета вызывается с помощью следующей команды JavaScript:

document.имяАпплета.имяМетода(параметрыМетода)


Добавим в апплет Star2 метод, который позволяет изменять цвет нарисованной звезды.

public void UserColor(int Red, int Green, int Blue)
{
// запоминаем параметры метода в переменных класса
r=Red; g=Green; b=Blue;
// инициируем перерисовку изображения
repaint();
}

Для вызова метода уже загруженного апплета с именем app
<APPLET CODE=Star2 NAME=app WIDTH=220 HEIGHT=220>
<PARAM name=red value=0>
<PARAM name=green value=200>
<PARAM name=blue value=150>
</APPLET>

создадим следующие командные кнопки в HTML-документе с апплетом, при нажатии на которые звезда будет рисоваться ярко-красным, зеленым и синим цветами, соответственно:

<input type="button" value="Красный" onclick="document.app.UserColor(255,0,0)">

<input type="button" value="Зеленый" onclick="document.app.UserColor(0,255,0)">

<input type="button" value="Синий" onclick="document.app.UserColor(0,0,255)">

 

Математический анализ, лекции по физике Компьютерные сети