0

Можно создать дубликат:
Does a finally block always run?java: Исключения: всегда достигают наконец?

давайте представим следующий сценарий:

public void myMethod() throws MyException 
    try 
    { 
    // do something 
    // an Exception (for example an individual written MyException which extends 
    // "Exception" is thrown here 
    } 
    catch (OtherException e) 
    { 
    // do something 
    } 
    finally 
    { 
    // do something else 
    } 
} 

В случае "MyException" отбрасывается в блоке попробовать и не будет поймают - они, наконец, блокируются, тем не менее, правильно?

Что делать, если бы это было исключение Runtime Exception, которое было бы выброшено? Будет ли достигнуто окончательное решение?

Есть ли случаи, когда блок finally не будет достигнут?

Спасибо за ответ :-)

+0

См. Предыдущий - http://stackoverflow.com/questions/464098/does-a-finally-block-always-run – Neil

+0

дубликат http://stackoverflow.com/a/464102/986169 – giorashc

+0

вызов befor exception возникает, System.exit() –

ответ

6

Наконец всегда вызывается, если у вас есть аварии Vm или позвоните System.exit.