java - 异常管理

标签 java exception

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

我可以这样做吗?:

 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 不包含当前所需的信息,我就无法知道它,所以我不想以这种方式处理它(不是一个大应用程序)。不过我也想知道正常检查异常的行为是什么。

最佳答案

IndexOutOfBounds 是一个RuntimeException,这意味着它不是一个受检查的异常。因此,您不需要在方法签名中声明它,而且我什至会说您不应该(而是在 Javadocs 中提及它)。这样做会使其检查/未检查的性质变得模糊。由于异常是未经检查的,因此您也不需要在 b 的方法签名中声明它。但是,如果它是受检查的异常,则必须声明它。

关于java - 异常管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19822808/

相关文章:

c# - 期望空值时抛出异常?

c# - "DataTable already belongs to another DataSet"

java - 我使用数组编译 java 彩票程序时出现 2 个错误

java - Spring security - 自定义 AuthenticationProvider 不工作 - Java 配置

ios - "Auto Layout still required..."返回主视图 Controller 时崩溃

Java Mysql 异常

java - 哈希表 : printing specific entries

java - 为什么 main 方法在子类中不打印任何内容?

Java 动态 Web 项目 HTTP 状态 500 - 实例化 servlet 类时出错

android - 无效 key 异常 : Key length not 128/192/256 bits