我有以下情况。
我有一个 Java 类,它继承自另一个基类并重写一个方法。
基本方法不会抛出异常,因此没有throws ...
宣言。
现在我自己的方法应该能够抛出异常,但我可以选择
两者都不令人满意,因为第一个会默默地忽略异常(好吧,我可以执行一些日志记录),第二个会由于不同的方法头而生成编译器错误。
public class ChildClass extends BaseClass {
@Override
public void SomeMethod() {
throw new Exception("Something went wrong");
}
}
如果您确实愿意,可以抛出未经检查的异常而无需声明它们。未经检查的异常扩展RuntimeException
。可抛出的扩展Error
也未经检查,但只能用于完全无法处理的问题(例如无效的字节码或内存不足)。
作为一个具体案例,Java 8 添加了UncheckedIOException https://docs.oracle.com/javase/8/docs/api/java/io/UncheckedIOException.html用于包装和重新投掷IOException
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)