2014-10-01 5 views
-1

Можете ли вы объяснить мне последовательность обработки исключений, когда она имеет несколько блоков. Например, у меня есть анонимный блок, который имеет две процедуры: Proc_A и Proc_B. Вызывается Proc_A, и исключение обрабатывается в Proc_A. Что будет дальше? Вернется ли он к исключению внешнего блока или он выйдет из него?Обработка обработки исключений

Благодаря

+0

Идите шаг за шагом, чтобы понять. Когда дескриптор задан блоку исключений, вызывающий объект не знает об ошибке, если дескриптор не возвращается обратно вызывающему абоненту. Вы можете ** начать **, читая http://lalitkumarb.wordpress.com/2014/05/02/when-others-then-null-a-bug/ –

ответ

0

вопрос не ясно, но вот мой идти на него:

Предположим, что у вас есть следующий код:

public void procA() throws Exception { 
    procB(); 
} 

public void procB() throws Exception { 
    try { 
    // code that throws an exception 
    } catch (Exception exc) { 
     // code to handle the exception 
    } 
} 

Теперь, если блок задвижка обрабатывает исключение его может пойти двумя путями. 1. Вы просто обрабатываете исключение и распространяете исключения. Нормальный переход к procA. 2. Вы решили бросить исключение дальнейшего или бросать новое исключение, как это:

throw exc 

throw new Exception(); 

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

Смежные вопросы