关于try catch的问题

yulincao 2004-06-16 03:05:37
try {
A
}
catch (Throwable theException) {
B
}
finally {
C
}

{
D
}
如果A代码出现问题执行了catch的B代码,并抛出异常,在执行完C代码后,还能否执行D代码?
...全文
70 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
maowu 2004-06-17
  • 打赏
  • 举报
回复
是的.
如果你把异常catch住了,不再往外面抛,别的就好像一般的代码一样运行了.
yulincao 2004-06-17
  • 打赏
  • 举报
回复
如果没有throw theException;但实际上已经出现异常的话,是不是仍然会执行D代码
maowu 2004-06-16
  • 打赏
  • 举报
回复
.........这样子肯定不会执行D啦,
throw theException;
你把异常throw了出来,异常一直往外面抛,直到有人catch它.
yulincao 2004-06-16
  • 打赏
  • 举报
回复
catch (Throwable theException) {
if (wfeDLSelectElementDBBean != null) {
wfeDLSelectElementDBBean.finalize();
wfeDLSelectElementDBBean = null;
}
throw theException;
}
yulincao 2004-06-16
  • 打赏
  • 举报
回复
try {
wfeDLSelectElementDBBean = new WfeDLSelectElementDBBean();
if (wfeDLSelectElementDBBean == null) {
throw new FrameWorkException(FrameWorkException.FLW_KIND_WORKFLOWENGIN,
WorkFlowEngine.WFE_ERROR_UNKNOWN,
"Can't create DBBean instance. - enumElements()");
}
maowu 2004-06-16
  • 打赏
  • 举报
回复
你是不是在B中又抛出了异常?最好把代码贴出来,至少catch里面的别出来.
alaal 2004-06-16
  • 打赏
  • 举报
回复
把大括号去了就可以了
yulincao 2004-06-16
  • 打赏
  • 举报
回复
那为什么我的程序中,执行完C代码后就直接显示异常,而没执行D代码
maowu 2004-06-16
  • 打赏
  • 举报
回复
肯定会啦.

62,622

社区成员

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

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