加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java异常try-catch异常与IOException

发布时间:2020-12-15 01:06:31 所属栏目:Java 来源:网络整理
导读:参见英文答案 Java unreachable catch block compiler error????????????????????????????????????6个 即使try块实际上没有抛出任何异常,下面的代码也可以编译好. public static void main(String[] args) { try {} catch (Exception e) {} // compiles ok}

参见英文答案 > Java unreachable catch block compiler error????????????????????????????????????6个
即使try块实际上没有抛出任何异常,下面的代码也可以编译好.

public static void main(String[] args)  {
    try {} 
    catch (Exception e) {} // compiles ok
}

但是如果使用Exception的子类替换catch,则代码将无法编译.

public static void main(String[] args)  {
    try {} 
    catch (IOException e) {} // won't compile. 
}

编译器错误是:IOException的无法访问的catch块.永远不会从try语句主体抛出此异常.

当Exception& IOException是检查异常吗?我正在使用Java 7.

最佳答案
编译器可以确切地知道代码的哪个部分可以抛出IOException,因为它是一个已检查的异常,因此每个可以抛出此类异常的方法都必须在方法签名中指定它.

另一方面,运行或未经检查的异常并不是预期的,因为RuntimeException(未经检查的异常的父类)也扩展了类Exception,所以编译器可以使用它.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读