抛异常时的一些异常~~~

binsolove 2008-06-09 08:41:04
public class ExceptionTest {

public static Integer i = 0;

public static void main(String[] args) throws Exception{
try{
if(i != 0)
throw new Exception("sadlfj");

}catch(NullPointerException e){
System.out.println("Caught NullPointerException111");
}finally{
System.out.println("Got through new");
}

try{
i = 10;
System.out.println(i.toString());
}catch(NullPointerException e){
System.err.println("Caught NullPointerException222");
}finally{
System.out.println("Got through it");
}
}

}
输出结果:
Got through new
10
Got through it

我觉得如果没有在第一个try块中没有抓住异常,就不应在执行第二个try块啊,但是为什么第二个try块也执行了???和finalize有关系么?
...全文
76 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
binsolove 2008-06-09
  • 打赏
  • 举报
回复
哦~~~郁闷,原来是这个问题~~~我对自己真的是很~~~多谢多谢~~~我现在要去撞墙了~~~谢谢大家~~~
wang_qing_2008 2008-06-09
  • 打赏
  • 举报
回复
if(i != 0) //现在楼主设定的是零
throw new Exception("sadlfj"); //所以这条语句不执行
binsolove 2008-06-09
  • 打赏
  • 举报
回复
哪位大侠知道为什么,我真的对此问题很费解啊~~~
binsolove 2008-06-09
  • 打赏
  • 举报
回复
我知道finally的意思,但是我这段代码的意思是第一个try块是不是应该因为处理不了抛出的Exception,而将此异常在第一个try块执行完直接抛出,这样好像就不应该执行第二个try块了
edwardrong 2008-06-09
  • 打赏
  • 举报
回复
楼上,你真的误会了finally的意思了,它的作用域不是那段main函数,而是try{}。finally{}里面是这个try{}只有一定要做的事,无论中间有没有exception is thrown。
binsolove 2008-06-09
  • 打赏
  • 举报
回复
还有我把finalize去掉后,还是会执行第二个try块,不知道为什么??
binsolove 2008-06-09
  • 打赏
  • 举报
回复
对啊,我认为程序会在第一个try块执行后中断~~而不应继续执行第二个try块,因为第一个try块没有抓住Exception的异常,它只能抓住NullPointerException异常,它不是应该直接跳出main函数么??
Ryker 2008-06-09
  • 打赏
  • 举报
回复
这程序写的有问题

在 if语句中抛的是Exception异常,而catch只处理空指针异常

所以只要出异常,程序肯定中断

如果再加个catch处理Exception异常,那么即使第一个try块抓到了异常,程序也会继续向下执行第二个try块
palm_civet 2008-06-09
  • 打赏
  • 举报
回复
抛出的异常被你接住了当然可以往下运行
Ryker 2008-06-09
  • 打赏
  • 举报
回复
..正好相反

第一个TRY块没抓到异常,所以程序才会向下执行第二个TRY块

dracularking 2008-06-09
  • 打赏
  • 举报
回复
为什么不应执行?第一个try和第二个有直接联系吗?只要程序没终止 就要执行
laorer 2008-06-09
  • 打赏
  • 举报
回复
看不懂你的意思


我觉得如果没有在第一个try块中没有抓住异常

但可以肯定的是,执行完第一个finally后,会继续执行二try

becloud 2008-06-09
  • 打赏
  • 举报
回复
无论程序是否有异常,finally里的语句一定会执行的,可以用来释放一些资源!

62,614

社区成员

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

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