为了账号安全,请及时绑定邮箱和手机立即绑定

以下是关于java的try--catch的方法,看着不大明白,求解释

以下是关于java的try--catch的方法,看着不大明白,求解释

慕少森 2022-02-18 11:11:58
//保存邮件信息public boolean saveEmail(EmailDTO emailDTO,Connection conn){String preSql = "insert into emailinfo values(?,?,?,?,?)";PreparedStatement pstmt = null;try{pstmt = conn.prepareStatement(preSql);pstmt.setString(1, emailDTO.getMailDate());pstmt.setString(2, emailDTO.getFromList());pstmt.setString(3, emailDTO.getTitle());pstmt.setString(4, emailDTO.getContent());if (emailDTO.getAttFilePath() != null) {pstmt.setString(5, emailDTO.getAttFilePath());}else {pstmt.setString(5, "");}pstmt.setString(6, emailDTO.getUserID());int flag = pstmt.executeUpdate();if (flag == 1){return true;}}catch(SQLException e){e.printStackTrace();}finally{close(pstmt,null);}return false;}按照书上所说,finally中的程序段是肯定会执行的,但是在try的大括号中有句return true,不明白的是,如果return true已经执行了,finally会不会执行到,程序应该是按顺序执行的,但这里不清楚它的流程!谢谢!!
查看完整描述

2 回答

?
德玛西亚99

TA贡献1770条经验 获得超3个赞

要明确以下几点:
1.finally中的程序段是肯定会执行的
2.return 也会执行的
3.在JVM中是按照顺序执行的
4.try catch 只是一种语法形式
所以:在执行到return时,先执行finally,再执行return.

查看完整回答
反对 回复 2022-02-21
?
长风秋雁

TA贡献1757条经验 获得超7个赞

在执行完 try 中的语句,并在 catch的所有错误处理发生之后,可无条件执行 finallyStatements 中的语句。
请注意,即使 try 或 catch 块中出现返回语句,或 catch 块中引发错误,都会执行 finallyStatements 中的代码。finallyStatments 一定会始终运行。

查看完整回答
反对 回复 2022-02-21
  • 2 回答
  • 0 关注
  • 163 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信