Java异常try-catch异常与IOException

前端之家收集整理的这篇文章主要介绍了Java异常try-catch异常与IOException前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

参见英文答案 > 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,所以编译器可以使用它.

原文链接:https://www.f2er.com/java/437341.html

猜你在找的Java相关文章