java - 为什么在已经声明时处理或声明错误?

标签 java exception compiler-errors

这是代码示例,我收到错误“必须被捕获或声明到 被抛出”但我有

已经处理了 IOException。那么你能告诉我为什么会出现错误吗?代码也是

遵循句柄和声明规则。

public void rethrow() throws SQLException, IOException {
    try {
        couldThrowAnException();
    }
    catch(Exception e) {
        e = new IOException();
        throw e;            //Error: must be caught or declare to be thrown
    }
}

最佳答案

您遇到的问题是编译器处理变量声明类型,而不是您分配给变量的类型。 变量是 Exception 类型,它不是 throws 子句的一部分。

如果您更改 catch() 子句以匹配 IOException,它将编译。

我建议您阅读 the Exceptions TrailJava Language Tutorial .

关于java - 为什么在已经声明时处理或声明错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32710256/

相关文章:

java - 为什么使用Gradle代替Ant或Maven?

Java:终止,退出值:-1073740940

c++ - 为什么代码会崩溃?

java - JasperReport异常打印

android - 将 SimpleCursorTreeAdapter 用于 ExpandableList 会产生错误 "Failed to read row 0, column -1"。找不到错误

c# - 处理资源错误 : Wrong Parameter

c++ - SMTP编译错误

java - 隔夜出现 MySql 错误 - "Last packet sent to the server was 0 ms ago"

java - 玩! - 动态结束作业

java - 按下按钮时 JFrame 将不会加载新的 JFrame