首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >异常管理

异常管理
EN

Stack Overflow用户
提问于 2013-11-06 21:06:03
回答 2查看 185关注 0票数 0

如果我调用一个方法,该方法调用另一个抛出异常的方法,但这是一个IndexOutOfBoundsException,我必须在我需要使用的每个方法中抛出这个异常,或者我可以将它抛到第一个方法中,然后在最后调用它。

我能这么做吗?

代码语言:javascript
复制
 public static void b() {
    a();
}

public static void a() throws IndexOutOfBoundsException {
}

public static void main(String[] args) {
    try {
        b();
    } catch (IndexOutOfBoundsException iEx) {
        //Manage exception
    }
}

我不打算使用IndexOutOfBoundsException作为检查异常,因为我正在读取一个.ini文件,以获得一个数组,其中包含一些我需要的数据,以便稍后将它们提供给数据源(BoneCp),以管理我的连接。如果.ini目前没有包含所需的信息,我就无法知道它,所以我不打算以这种方式处理它(不是一个大应用程序)。但是,我也想知道正常检查异常的行为是什么。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-06 21:11:57

IndexOutOfBounds是一个RuntimeException,这意味着它不是一个检查过的异常。因此,您不需要在方法签名中声明它,我甚至可以说,您的不应该是(在Javadocs中应该提到它)。这样做使得它对其检查/未检查的性质有点模糊。由于未检查异常,因此也不需要在b的方法签名中声明它。然而,如果这是一个检查异常,您将不得不声明它。

票数 1
EN

Stack Overflow用户

发布于 2013-11-06 21:31:33

我认为这里的问题是,您依赖错误的异常使您的程序崩溃。如果您正在读取一个文件,并且希望在其中包含特定的内容,则应该使应用程序抛出一个显式提到该内容的错误。例如,如果您有一个解析文件的方法,您可以在其中捕获IndexOutOfBounds异常并抛出一个new RuntimeException("some interesting message", e);异常(其中e是您的IOOB异常)。仅IOOB异常给您的用户提供了什么样的信息?

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

https://stackoverflow.com/questions/19822808

复制
相关文章

相似问题

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