java中为啥用finally语句

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中为啥用finally语句相关的知识,希望对你有一定的参考价值。

知道了如何用finally,但却没搞太懂为什么用finally!

finally 可以用来释放一些资源,例如IO流或者JDBC的Connection。finally里面的东西不管是否捕获到异常,都会被执行。 参考技术A 类似与发生错误之后,一定要进行的操作!
比较猥琐的例子就是:
try
grilFriend().hasChild(); //女友意外怀孕

catch
grilFriend().streamOfPeople(); //人流处理
finally
careof(); //照顾她


是人,总是要照顾的
参考技术B 看具体用途,finally里面的东西都会被执行!比如可以在此释放一些资源处理等! 参考技术C 比如说 连接数据库
try
.open();//打开连接
正常运行
catch()
出现错误进入catch
finally
.close();//关闭连接

不管是正常运行还是出现错误都需要关闭数据库 ,所以把.close();放入finally中,就是为了防止出错之后程序不往下运行了,所以才有了finally

求教大神,java中的jdbc程序为啥要加finally,不是加了try catch以后,后面的语句就会执行了啊

不明白,求解释

与其他语言的模型相比,finally 关键字是对 Java 异常处理模型的最佳补充。finally 结构使代码总会执行,而不管有无异常发生。使用 finally 可以维护对象的内部状态,并可以清理非内存资源。 如果没有 finally,您的代码就会很费解。

finally 块必须与 try 或 try/catch 块配合使用。此外,不可能退出 try 块而不执行其 finally 块。如果 finally 块存在,则它总会执行。
参考技术A 举个例来说
try
stmt.execute();
catch (SqlException e)
stmt.close();//try catch
这段代码,close()肯定会执行,但是在trycatch中如果有没被捕捉到的异常,比如
Integer.ParseInt("");抛出的是formatException
如果不用finally,就会直接向上抛,
下面那个close();就不会再执行了。
所以一般这种close操作要放在finally中本回答被提问者和网友采纳
参考技术B 除非调用exit方法或者关闭程序,否则finally内的程序都会执行。加finally的好处是,如果程序在运行过程中发生了异常,无法继续执行下去,这是就要把打开的资源关闭,不关闭的话后导致down机,所以把需要关闭的资源放在finally里面,这样无论是否发生异常,最后都能关闭资源 参考技术C finally的作用是保证无论程序正确执行还是发生异常,都把占用资源的connection给close掉,以释放资源。 参考技术D 如果不要finally,你需要在catch里面处理异常并且要释放连接,你还需要在没异常程序正常执行完之后在次释放连接,同样代码要写两次,所以不妨就直接放在finally里面,简单明了。

以上是关于java中为啥用finally语句的主要内容,如果未能解决你的问题,请参考以下文章

求教大神,java中的jdbc程序为啥要加finally,不是加了try catch以后,后面的语句就会执行了啊

Java里面用try catch异常处理之后,catch之后的代码也会执行,那还要finally有啥用啊?

finally中可以操作数据库吗

JAVA,为啥final类不能被继承,如果定义为final的类该类里面成员变量不特殊说明则是final类还是非final

java方法中变量用final修饰对性能有影响!你觉得呢?

JAVA接口中成员变量必须是final类型的,为啥