我对Java相当陌生,无法理解try-catch-finally块中的控制流。无论何时在catch块中捕获到异常,catch块之后的代码也会被执行,无论是否将它放在finally块中。那么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");
}
}
如果我将最后一个print语句放在finally块中,没有区别。
在'try'中抛出'new RuntimeException()',你会注意到catch块之后的代码没有被执行。然后添加一个finally块。 – Kayaman
在发生任何异常之后,您可以使用'finally'模块将程序设置为可以使用的状态。 – Blobonat
finally块**内的代码总是**执行,即使在try或catch中有一个return或一个未处理的异常。 这是解释[这里](https://docs.oracle.com/javase/tutorial/essential/exceptions/finally.html)这是一个非常简单的谷歌搜索。 **请使用谷歌。** –