java - 有没有办法在不添加 throws 声明的情况下抛出异常?

标签 java exception

我有以下情况。

我有一个继承自另一个基类并覆盖方法的 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/

相关文章:

java - 为什么从Executors实用程序类返回的ExecutorService的execute()方法无法自然终止

java - 使用主复合键中的一列 hibernate 多对一映射

安卓应用问题

Android - 将错误记录到电子邮件帐户

java - 使用 java 将文件从一台 Solaris 9 复制到另一台

java - 如何加载原生库来玩框架

Java运行进程: view byte code at runtime of an arbitary process

c# - 为什么目录上的 File.Delete() 会产生 UnauthorizedAccessException?

javascript - 执行一个 promise 循环并捕获过程中的错误

c# - 任务 OutOfMemory 异常不会终止进程