Я довольно новичок в Java и не могу понять поток управления в блоках try-catch-finally. Всякий раз, когда исключение попадает в блокирующий блок, также выполняется код после блока catch, независимо от того, помещаю ли я его в блок finally или нет. Тогда каково использование окончательного блока?Управление потоком при обработке исключений
class Excp
{
public static void main(String args[])
{
int a,b,c;
try
{
a=0;
b=10;
c=b/a;
System.out.println("This line will not be executed");
}
catch(ArithmeticException e)
{
System.out.println("Divided by zero");
}
System.out.println("After exception is handled");
}
}
Нет никакой разницы, если я поместил последний оператор печати внутри блока finally.
Бросьте 'новое RuntimeException()' внутри 'try', и вы заметите, что код после блокировки catch не выполняется. Затем добавьте блок finally. – Kayaman
Вы используете блок 'finally', чтобы настроить вашу программу на статус, с которым она может работать после того, как произошло какое-либо исключение. – Blobonat
Код внутри блока finally ** всегда ** выполняется, даже если в 'try' или' catch' есть 'return' или необработанное исключение. Это объясняется [здесь] (https://docs.oracle.com/javase/tutorial/essential/exceptions/finally.html), который был найден с очень простым поиском google. ** Пожалуйста, используйте google. ** –