try-catch try和catch是根据条件选择执行的,不会把每个catch都执行一遍~~~ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 因为你声明了static void thud() throws IOException 啦,这个IOException 被选择 沿调用栈回溯到调用者方法 抛出,而不是在这个方法中继续执行被捕捉。 to: CyberH()try和catch是根据条件选择执行的System.out.println("thud() caught SubEx"); throw new IOException();////////这儿怎么没有抛给下面的System.out.println( "thud() caught IOException");想问一下.throw new IOException();算不算条件???? 我的意思是说try和catch的关系相当于switch和case这样的条件选择关系 static void thud() throws IOException { try { throw new SubEx(); } catch (SubEx x) { System.out.println("thud() caught SubEx"); throw new IOException();//执行完这句就退出thud了,不会接着执行下面的catch语句,所以这个IO错误就只能在main里面被捕获~~~ } catch (IOException x) { System.out.println( "thud() caught IOException"); throw new IOException(); } catch (Exception x){ System.out.println( "thud() caught Exception"); } } throw相当于return,欧以前也是和 dy15(知足常乐!)相同的看法,不过,自己写了例子测试了一下,发现不是这样的,想想也是,它既然已经return了,怎么还会被下面的捕获呢。收获颇丰祝节日快乐 在一连串 cactch 中 只会有一个 catch 被执行是 catch 的 Exception 与 抛出的 Exception 最接近的那个之后就会跳出 try - catch 执行 finally 或 下面的内容 Jbuilder中生成可运行文件步骤:执行步骤:(有问题再给我email)1、Wizards->Native Executable Builder2、弹出一个窗口(左上角有"-Stem 1 of 6")点击next3、弹出一个新窗口(左上角有"-Stem 2of6")单选框根据需要选中 点击"AddClasses",将你的所 有要打包的文件都加进去。点击next4、弹出一个新窗口(左上角有"-Stem 3of 6") 点击next5、弹出一个新窗口(左上角有"-Stem 4of 6") 点击next6、弹出一个新窗口(左上角有"-Stem 5of 6")最好点第二个复选框(Use the class specified...),点右边的浏览按扭,在弹出的窗口中选Browse,选择你的有main()函数,可以运行的文件。点击next7、弹出一个新窗口(左上角有"-Stem 6of 6")点击finesh8、现在在左边的显示框中发现多了一个东东,它的图标和Wizards->NativeExecutable Builder菜单上的图标一样。选种它,点击右键,执行"make"。9、回到你的project文件目录,呵呵 爽! 这样的:你抛出SubEx()例外对象,所以你的catch捕获了,但是你的捕获catch (SubEx x)的抛出并没有try去捕获。而是被函数抛出了,准备给try他的块去捕获。因为你只抛出了SubEx例外,所以,你的catch (IOException x)、catch (Exception x)当然都没的捕获了。 你的这3个捕获都是对你的try而言的,后面的也不是对你前面的catch用的。注意try和catch的配对问题。 建议仔细理解学习一下例外机制。 初学JAVA先学SE谁能给个系统的学习方案!(自学) Java中Menu时间 eclipse CVS 同步问题 问一个关于static的问题 基础问题,关于创建对象的 关于g.drawLine()函数的一个问题 小弟想开始学JAVA 请大家给点建议好吗??? 无意间发现一个问题,大家来讨论一下,顺便散分!!! 数据导出问题,望大家给建议,原码就高分相送了 数字签名请教!!分数不够可以在加!!!! 菜鸟求有关中文问题? 请问:如何让JTable的DefaultTableModel对JTable内容的改变感知?
try和catch是根据条件选择执行的System.out.println("thud() caught SubEx");
throw new IOException();
////////这儿怎么没有抛给下面的System.out.println( "thud() caught IOException");
想问一下.throw new IOException();算不算条件????
try {
throw new SubEx();
} catch (SubEx x) {
System.out.println("thud() caught SubEx");
throw new IOException();//执行完这句就退出thud了,不会接着执行下面的catch语句,所以这个IO错误就只能在main里面被捕获~~~
} catch (IOException x) {
System.out.println( "thud() caught IOException");
throw new IOException();
} catch (Exception x){
System.out.println( "thud() caught Exception");
}
}
祝节日快乐
是 catch 的 Exception 与 抛出的 Exception 最接近的那个之后就会跳出 try - catch 执行 finally 或 下面的内容
1、Wizards->Native Executable Builder
2、弹出一个窗口(左上角有"-Stem 1 of 6")点击next
3、弹出一个新窗口(左上角有"-Stem 2of6")单选框根据需要选中 点击"AddClasses",将你的所 有要打包的文件都加进去。点击next
4、弹出一个新窗口(左上角有"-Stem 3of 6") 点击next
5、弹出一个新窗口(左上角有"-Stem 4of 6") 点击next
6、弹出一个新窗口(左上角有"-Stem 5of 6")
最好点第二个复选框(Use the class specified...),点右边的浏览按扭,在弹出的窗口中选Browse,选择你的有main()函数,可以运行的文件。点击next
7、弹出一个新窗口(左上角有"-Stem 6of 6")点击finesh
8、现在在左边的显示框中发现多了一个东东,它的图标和Wizards->Native
Executable Builder菜单上的图标一样。选种它,点击右键,执行"make"。
9、回到你的project文件目录,呵呵 爽!
你抛出SubEx()例外对象,所以你的catch捕获了,但是你的捕获catch (SubEx x)的抛出并没有try去捕获。而是被函数抛出了,准备给try他的块去捕获。因为你只抛出了SubEx例外,所以,你的catch (IOException x)、catch (Exception x)当然都没的捕获了。 你的这3个捕获都是对你的try而言的,后面的也不是对你前面的catch用的。注意try和catch的配对问题。 建议仔细理解学习一下例外机制。