【问题标题】:Compilation Error while using throw keyword使用 throw 关键字时出现编译错误
【发布时间】:2016-06-01 19:32:57
【问题描述】:

示例代码:1

public class ClassTest     {
    public static void main(String[] args)  {
        throw  new java.lang.ArithmeticException(); 
    }
}

----以上代码没有编译错误,编译器没有要求处理异常

示例代码:2

public class ClassTest     {
    public static void main(String[] args)  {
        throw new java.lang.Exception();    
    }
}

--编译器想要使用try-catch 或 throws 来处理异常。

谁能解释一下编译器的这种行为。我想这是因为我们需要特别提到XYZException类(除了Exception类)。

【问题讨论】:

标签: java exception throw


【解决方案1】:

ArithmeticExceptionRuntimeException,编译器不检查。 Exception 被检查,因此如果违反规则,例如不处理引发异常的方法,将阻止编译。

【讨论】:

  • 感谢您的评论。
【解决方案2】:

在示例代码 1 中,我们遇到的异常是算术异常,即运行时异常。正如我们已经知道的那样,运行时异常会隐式传播,而无需在方法签名处使用 throws 关键字,而不是在同一方法中处理它。

在示例代码 2 中,我们遇到的异常是 Checked Exception,应该使用 try catch 或使用 throws 关键字进行传播。但是缺少方法签名处的 throws 关键字,这会导致编译时错误。

【讨论】:

    猜你喜欢
    • 2020-09-19
    • 2013-06-16
    • 2013-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多