try finally ()表示什么意思

lilinew 2009-08-17 01:56:02
这种try 结构表示什么意思
(一般理解try catch (异常捕获)

但是下面用的哦是
try finally {()
表示什么意思,如果过程有异常会如哦?


try {

conn = DBConnectionManager.getConnection();
ps = conn.prepareStatement(sbSel.toString());
ps.setString(1, bonusId);
rs = ps.executeQuery();

while (rs.next()) {
....... } finally {
DBConnectionManager.closeRS(rs);
DBConnectionManager.closeStmt(ps);
if (inTransaction == false)
DBConnectionManager.freeConnection(conn);
}
...全文
14175 27 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
见习会员 2011-08-12
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 solliusheng 的回复:]

try的后面必须接catch或finally或者都接,但不能一个都不接;
finally的主要作用是在出现异常后无论怎样都要执行finally里的语句.
你可以看看这个代码:
Java code
public static void main(String[] args) {
try{
int i=1/0;
}
……
[/Quote]UP!!!
ivan_fang 2010-08-19
  • 打赏
  • 举报
回复
有的时候,系统的架构就是需要上抛异常,无需自己处理
所以try{}
finally{}
就可以了,不用加catch
o_range 2009-08-18
  • 打赏
  • 举报
回复
只有try没有catch不会报错?
coolmurder 2009-08-18
  • 打赏
  • 举报
回复
这个思路我没觉得有错
如果有一个异常我打算抛给上一层处理,其实就是通知调用的方法这个过程有问题,我当然不catch。
但如果这个过程内临时使用了系统资源,你总不能也让上一层帮你释放吧。
所以要用finally来做这个事。
要灵活用运
zenxingg10 2009-08-18
  • 打赏
  • 举报
回复
执行完try里面的代码,无论里面有什么异常,最后会在执行finally里面的代码
而catch只是在发生异常时执行
jiaguangchun1984 2009-08-18
  • 打赏
  • 举报
回复
如果你用try不用catch是没有意义的 finaly表示始终都会执行
solliusheng 2009-08-18
  • 打赏
  • 举报
回复
try的后面必须接catch或finally或者都接,但不能一个都不接;
finally的主要作用是在出现异常后无论怎样都要执行finally里的语句.
你可以看看这个代码:
	public static void main(String[] args) {
try{
int i=1/0;
}
catch(Exception e) {
System.out.println("在catch里");
}
finally {
System.out.println("在finally里");
}
}
// 输出结果:
// 在catch里
// 在finally里
24K純帥 2009-08-18
  • 打赏
  • 举报
回复
finally关闭连接
liming861105 2009-08-17
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 sixme 的回复:]
呵呵~~~顾名思义finally 是用来做收尾工作的,因为它在任何情况下都会执行,一般用来关闭连接,关闭打开的文件等等。
[/Quote]
up
caoyuanlang_11 2009-08-17
  • 打赏
  • 举报
回复
不管程序执行try还是catch,finally 始终会执行。
通常在finally语句中是进行资源的清除工作。如关闭打开的文件和通讯句柄,或者数据库链接等。
lihaifeng0412 2009-08-17
  • 打赏
  • 举报
回复
异常处理的
nzz1985 2009-08-17
  • 打赏
  • 举报
回复
catch{}可以不要,只是异常会向上抛出而已,加了catch就是自己在处理异常了,无论出不出异常,finally都会执行
qiubojuncode 2009-08-17
  • 打赏
  • 举报
回复
完整的语句应该是
try{}
catch(){}
finally{}
finally可以省略,意思不管是否程序捕获到异常都要执行的代码.
转行来的 2009-08-17
  • 打赏
  • 举报
回复
catch 还是要的吧
freedom2001 2009-08-17
  • 打赏
  • 举报
回复
我晕。楼主连基本语法都不回就跑去写程序啊,正规的写法是这样的
try{
}catch(Exception e){
}finally{
}
这是java捕捉异常的语法,把你的语句都写在try内,如果这些语句出现了一场会被catch捕捉到,你可以再catch里写异常的处理语句,finally里是最终处理语句,不管你的语句有没有异常,最后都会执行到finally里的语句。
比如说访问数据库,你在try里写读写数据库语句,一旦出现异常就可以再catch里print异常信息,在finally里可以写数据库连接关闭语句,以防止出现异常无法正常关闭数据库连接的情况。
lookhang 2009-08-17
  • 打赏
  • 举报
回复
呵呵~~~顾名思义finally 是用来做收尾工作的,因为它在任何情况下都会执行,一般用来关闭连接,关闭打开的文件等等。
whuisszl008 2009-08-17
  • 打赏
  • 举报
回复
[Quote=引用楼主 liyihongcug 的回复:]
这种try 结构表示什么意思
(一般理解try  catch (异常捕获)

但是下面用的哦是
try    finally {()
表示什么意思,如果过程有异常会如哦?


try {

conn = DBConnectionManager.getConnection();
ps = conn.prepareStatement(sbSel.toString());
ps.setString(1, bonusId);
rs = ps.executeQuery();

while (rs.next()) {
....... } finally {
DBConnectionManager.closeRS(rs);
DBConnectionManager.closeStmt(ps);
if (inTransaction == false)
DBConnectionManager.freeConnection(conn);
}
[/Quote]
lz你这代码没有报错啊?????
chinarenzhou 2009-08-17
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 liujun3512159 的回复:]
捕获异常的 ,如果程序出现异常,会抛出异常,catch中会进行响应捕获处理,而finally 是程序中必须要执行的一部分,不论是不是发生异常
[/Quote]同意
loveofmylife 2009-08-17
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 q85958341 的回复:]
不管程序执行try还是catch,finally 始终会执行。
通常在finally语句中是进行资源的清除工作。如关闭打开的文件和通讯句柄,或者数据库链接等。
[/Quote]
除非你在try里面System.exit(0),不然finally都会执行,执行一些关闭流等操作
麻烦的一笔 2009-08-17
  • 打赏
  • 举报
回复
表示最终都要执行的
加载更多回复(7)

62,630

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧