我有以下情况。
我有一个继承自另一个基类并覆盖方法的 Java 类。
基本方法不会抛出异常,因此没有 throws ...
声明。
现在我自己的方法应该能够抛出异常,但我可以选择任一方法
- 吞下异常或
- 添加 throws 声明
两者都不令人满意,因为第一个会默默地忽略异常(好吧,我可以执行一些日志记录),第二个会因为不同的方法头而产生编译器错误。
public class ChildClass extends BaseClass {
@Override
public void SomeMethod() {
throw new Exception("Something went wrong");
}
}
最佳答案
如果你真的想的话,你可以抛出未经检查的异常而不必声明它们。未经检查的异常会扩展 RuntimeException
。扩展 Error
的 Throwables 也未选中,但只能用于完全无法处理的问题(例如无效的字节码或内存不足)。
作为特定情况,Java 8 添加了 UncheckedIOException
用于包装和重新抛出 IOException
。
关于java - 有没有办法在不添加 throws 声明的情况下抛出异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4519557/