为了账号安全,请及时绑定邮箱和手机立即绑定

你好,请问检查时异常为什么不能捕获再抛出,编译不通过

你好,请问检查时异常为什么不能捕获再抛出,编译不通过

慕仙森 2022-04-22 15:11:23
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中发现的,例如空指针异常。

查看完整回答
反对 回复 2022-04-24
  • 1 回答
  • 0 关注
  • 162 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信