Необходимость обработки исключительных ситуаций, страница 2

1. Чем обусловлена необходимость использования множественных операторов catch?

2.Для чего предназначен каждый из множественных операторов catch?

3. Что происходит, когда выбрасывается исключение при использовании множественных операторов catch?

4. В какой последовательности должны находиться подклассы исключений при использовании множественных catch-операторов?

5. Что значит «вложенный try-оператор»?

6. В каких случаях они используются?

7. Что произойдет, если у оператора try низкого уровня нет раздела catch?

Тест

1. Что Вы увидите, откомпилировав эту программу?

class SuperSubCatch {

public static void main (String args[]) {

try {

int a=0;int c;

int b=42/6;

}

catch (ExceptionInInitializerError e) {

System.out.println("Генерация исключения catch");

}

catch (ArithmeticException e) {

System.out.println("Недостижимый оператор");

}

}

}

а) сообщение об ошибке, заявляющее, что первый catch-оператор недо            стижим б) сообщение, что данная программа содержит 0 ошибок в) сообщение, что второй catch-оператор недостижим г) сообщение об ошибке, заявляющее, что переменная а не определена д) программа откомпилируется, результат работы программы– это ничего не выведется на экран

2. Какая из форм правильная?

а) try {

…    

} catch (SomeExceptionClass e) {

} catch (AnotherExceptionClass e) {

}

б) try {

catch (SomeExceptionClass e)

catch (AnotherExceptionClass e)

}

в) catch (SomeExceptionClass e) {

try { }

} catch (AnotherExceptionClass e) {

}

г) try {

} catch (SomeExceptionClass) {

} catch (AnotherExceptionClass) {

}

Ответы на тесты:  …(1) д…(2) а…

5.6. Операторthrow иметодысключевымсловомthrows

Вопросы

1. Для чего используется оператор throw?

2. Какие способы получения Throwable-объекта существуют?

3. Что происходит после выполнения оператора throw?

4. Общий вид оператора throw.

5. Общая форма метода throws?

6. Для чего используется ключевое слово throws?

Тест

1. В каком случае в этом примере будет выброшено исключение?

public int calculate(int theValue){

if( theValue < 0){

throw new Exception("Параметр для вычисления не должен быть   отрицательным");

 }

 }

 …

а) если в качестве параметра методу будет передано положительное значение б) если в качестве параметра методу будет передано отрицательное значение в) если в качестве параметра методу будет передан 0

г) все варианты верны

2. В каких случаях throw используется вторично?

а) когда после обработки исключительной ситуации возникает необходимость передать информацию о ней в вызывающий код б) оператор throw не используется дважды в) нет правильных вариантов ответа

3. try {

throw new IOException();

}catch(Exception

;

}

 В данной программе оператор try:

а) завершится нормально б) завершится ненормально в) не завершится г) нет правильных вариантов ответа

Ответы на тесты:  …(1) б, в…(2) а…(3) а…

5.7. Блок finally

Вопросы

1. Для чего предназначено ключевое слово finally?

2. Какой блок кода определяет finally?

3. Зависит ли выполнение блока finally от выброса исключения?

4. Каков результат выполнения следующей программы?

class FinallyDemo {

static void procA() {

try {

System.out.println("inside procA");

throw new RuntimeException("demo");

}

finally {

System.out.println("procA's finally");

}

}

static void procB() {

try {

System.out.println("inside procB");

return;

}

finally {

System.out.println("procB's finally");

}

}

public static void main(String args[]) {

try {

procA();

}

catch (Exception e) {}

procB();

}

}

Тест

1. Если блок finally завершается нормально, то нормально завершается и:

а) блок try

б) блок catch

в) нет правильных вариантов г) все варианты верны

2. Что произойдет, если во время обработки исключительной ситуации возникнет новая исключительная ситуация, то исключительная ситуация, которая послужила первопричиной:

а) не будет потеряна б) сохранится в) будет потеряна г) нет правильного варианта

3. try {

…       

} catch (Exception e) {

system.exit(0);

finally {

}

 В данном примере блок finally:

а) будет выполнен б) не будет выполнен в) данный пример не имеет смысла

Ответы на тесты:  …(1) а…(2) в…(3) б…