繁体   English   中英

调用带有检查异常的方法

[英]call method with checked exception

据我所知,如果方法抛出异常 Java 编译器会强制该方法的调用者捕获该异常。

我看到parseInt抛出NumberFormatException

public static int parseInt(String s) throws NumberFormatException {
    return parseInt(s,10);

那么为什么我可以在不捕获异常的情况下调用它:

String str = "5";
int n = Integer.parseInt(str);

因为NumberFormatException扩展了RuntimeException - 运行时异常被认为是“未检查的”,请参阅RuntimeExceptionJavadoc

RuntimeException 是在 Java 虚拟机正常运行期间可以抛出的那些异常的超类。

方法不需要在其 throws 子句中声明任何可能在方法执行期间抛出但未被捕获的 RuntimeException 子类。

这是Java 教程中的一篇文章,解释了此功能的含义及其存在的原因

重要的区别是任何从运行时异常扩展的异常都不需要被捕获,而任何其他异常都需要。 任何时候都可能抛出扩展 RuntimeException 的异常,比如 NullPointerException 或 ConcurrentModificationException,所以它们不能指望你去尝试捕获它们。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM