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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求教大神,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 PKIX path validation failed 求教大神帮助解决

java 程序在调试的时候报以下错误信息:
ERROR cn.knet.gtld.epp.transport.client.EPPSSLClientSocket - Failed When Handshake : sun.security.validator.ValidatorException: PKIX path validation failed: java.security.cert.CertPathValidatorException: Path does not chain with any of the trust anchors
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path validation failed: java.security.cert.CertPathValidatorException: Path does not chain with any of the trust anchors

不知道是myeclipse 环境的问题,还是 ssl 证书配置的问题
myeclipse 是10.7的
jdk1.7.0_67
问题已经解决,是jdk版本的问题,换个jdk 1.8的就可以了

jdk版本问题,换个高的,我目前jdk1.8_66都不行.

实测jdk1.8_144可以,照理以上也是可以的.

不想换的话到网站上把证书搞下来,具体怎么搞请百度.

这里只有一张图,然后导出就可以了.(浏览器不同有差异.)

然后去jdk1.8.0_66\\jre\\lib\\security-->cmd(管理员权限)导就行了.命令如下.

//导入
keytool -import -file D:\\xxxx.crt -keystore cacerts -alias xxxx

//查看
keytool -list -keystore cacerts | findstr /i xxxx

参考技术A so easy:
public class Test
 public static void main(String args[])
   Scanner sc = new Scanner(System.in);
   System.out.println("请输入是否是会员:是(y)/否(其它字符)");
   String y = sc.readLine();
    System.out.println("请输入购物金额:");

   int a = sc.nextInt();
   if("y".equals(y))a = a*0.75;
 System.out.println("实际支付:"+a);
 

以上是关于求教大神,java中的jdbc程序为啥要加finally,不是加了try catch以后,后面的语句就会执行了啊的主要内容,如果未能解决你的问题,请参考以下文章

求教各位大神,我要上线一个JAVA程序的网站,现在要托管一个服务器,我们有一台2U的DELL服务器

求教大神: android 开发的java程序中,一个语句super.onCreate(savedInstanceState); 是啥意思?

java PKIX path validation failed 求教大神帮助解决

在mybatis跟spring集成的时候,为啥还要导入spring-jdbc的包呢,这里面不是

关于oracle数据库死锁,请大神进。为啥用java synchronized 关键字解决不了?怎么解决死锁问题?

C程序:求教大神(急)提 取 字 符 串 文 件 名