public class TestEx3 {public static ServerSocket ss = null;public static void doEx1() {try {ss = new ServerSocket(5678);Socket socket = ss.accept();} catch (IOException e) {System.out.println("doEx1处理IO异常");throw e;}}public static void main(String[] args) {try {doEx1();} catch (IOException e) {System.out.println("mian方法处理IO异常");} finally {System.out.println("程序结束");}}}
1 回答
湖上湖
TA贡献2003条经验 获得超2个赞
这是java的默认配置。
当你把一个异常定义在方法的throws定义中,你就可以不处理这个异常,系统会自动把该异常抛出。 而RuntimeException则是java设计中所有方法都默认定义在throws中了,所以只要你不捕获,就会一层一层的往上抛出。
除非你显示的标准要捕获它。否则不会被捕获。也不会造成编译异常。
其实大部分的RuntimeException,要么是系统异常。无法处理。例如网络问题。
要么就是应该在UT中发现的,例如空指针异常。
添加回答
举报
0/150
提交
取消