首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java中早于Java 7版本的Catch (异常e)

Java中早于Java 7版本的Catch (异常e)
EN

Stack Overflow用户
提问于 2018-11-25 21:42:32
回答 1查看 61关注 0票数 3

在Oracle OCP Java SE 8程序员II学习指南第3章中,它说明如下(pg )。184):

在Java6中,我们不能编写catch (Exception e),而只能抛出特定的异常。如果我们尝试,编译器仍然会抱怨:

未处理异常类型Exception

这是什么意思?具体的例子是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-25 21:52:59

请考虑以下示例:

代码语言:javascript
复制
Integer add (Integer a, Integer b) {
    try {
        return a + b;
    } catch (Exception e) {
        throw e;
    }
}

当然,添加两个数字不能抛出任何检查的异常。但是,在Java6中,编译器看到throw e,其中e是一个Exception,并得出结论,该方法可以抛出任何Exception。这需要add声明它是throws Exception

在Java 7中,编译器在计算重新抛出异常时e的类型时会更聪明一些。在这种情况下,可以计算出e只能是一个RuntimeException (未经检查),因此添加throws Exception的声明不再必要。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53472292

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档