有没有一种方法可以在不添加 throws 声明的情况下抛出异常?

2024-03-23

我有以下情况。

我有一个 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(使用前将#替换为@)

有没有一种方法可以在不添加 throws 声明的情况下抛出异常? 的相关文章

随机推荐

  • 为 iPod classic 编码视频

    我刚刚安装完ffmpeg在 debian wheezy 上使用这些说明 http trac ffmpeg org wiki UbuntuCompilationGuide http trac ffmpeg org wiki UbuntuCom
  • Lua 中的“加载”有什么作用?

    我试图解决我的理解问题loadLua 脚本中的函数 但没有该命令的任何示例或指南 它在他自己的 Lua 网站上讲述https www lua org manual 5 2 manual html pdf load https www lua
  • 如何在 WPF 中将字符串绑定到 double?

    我想设置一个绑定 问题是目标是 string 类型 但源是 double 类型 在以下代码中 VersionNumber 的类型为 double 当我运行它时 文本块是空的 没有抛出任何异常 我该如何设置这个绑定
  • 使用 cron 防止 Bash 脚本并行或重叠运行

    如果我的 cron 表中有以下条目 00 03 java prog1 sh 00 5 java prog2 sh 第一份工作通常需要 30 分钟左右才能完成 第二项工作大约需要10分钟 在某些特殊情况下 第一份工作需要两个多小时 有没有办法
  • jquery 和 updatepanel?

    我在 ASP NET 中有一个更新面板 可以进行部分页面刷新 我使用 jQuery 取得了一些成功on 方法不过 document ready function 仅在页面初始加载期间调用 而不是在每次 updatepanel 刷新后调用 我
  • 如何在 C++ 调试期间冻结 VSCode 中的线程

    我已经使用 VSCode 进行编码几个月了 真的是太棒了 然而 我发现我无法冻结一个线程 我能做的就是Pause all threads and Continue all threads 如果不冻结特定线程 则很难调试多线程程序 尤其是一些
  • 为什么 v1 Web 组件 customElements.define() 会抛出 TypeError

    我正在使用 v1 Web 组件 根据埃里克 比德尔曼 Eric Bidelman 的说法自定义元素 v1 可重用的 Web 组件 https developers google com web fundamentals primers cu
  • 将常规 Swift 函数转换为 Curry 函数

    我正在尝试将常规函数转换为咖喱函数 但得到Execution was interrupted 下面是我柯里化一个函数并执行 unsafeBitCast 来调用带有一个参数的函数并稍后使用第二个参数调用它的代码 func curry
  • 当“状态”从“打开”更改为“已完成”时,如何将一行移动到工作表(GOOGLE SHEET)的底部

    当 状态 更改为完整时 如何将行移动到同一张纸的底部 我试图找出一旦 Status B 列值从 OPEN 更改为 CLOSED 时如何将行移动到底部 工作表名称为 Sheet1 其中状态下拉菜单位于 B 列 下拉菜单包含 OPEN HOLD
  • libv4l2:打开流时出错:设备上没有剩余空间

    我尝试为 opencv 获取立体声对 我将 Logitech B910 和 Logitech C910 网络摄像头连接到 USB 但有这个错误 我玩弄了怪癖参数并设置outfmt mjpeg在mplayer中 但又出现此错误 在哪里可以找到
  • theano 给出“...正在等待未知进程的现有锁...”

    我的代码运行良好 但是 现在我收到一条错误消息 Using gpu device 0 GeForce GT 750M WARNING theano gof cmodule ModuleCache refresh Found key with
  • Python Pandas 混合布尔 Yes/True 和 NaN 列

    我正在学习健康科学课程 推荐使用 R 或 Stata 我正在尝试使用 Python Numpy Pandas 来代替 因为我希望将来使用它来进行金融时间序列分析 数据是 Stata 格式 所以我复制了字段并将它们保存为CSV 所有字段导入都
  • R Shiny - 多页可编辑数据表在编辑后跳转到第 1 行

    我正在使用 R 3 3 1 Shiny v 1 2 0 和 v DT 0 5 开发一个 Shiny 应用程序 其中一个元素是跨多个页面的可编辑数据表 在我进行编辑后 焦点行会跳转到第 1 行 这会破坏用户体验 以下是使用下面的代码片段重现此
  • 使用 Chrome 将 HTML 填充到 about: URL 中

    以前 在 Internet Explorer 中 您可以在 URL 栏中输入以下内容 about 屏幕会变成红色 Chrome 中是否有等效的 heredoc 语法用于通过 URL 加载 HTML 也许是数据 URI data text h
  • 在 Docker Compose 中执行 /bin/bash

    我正在尝试自动化 docker compose 文件 我想做一些初步任务 例如更新源代码 构建库并自动运行bash只需调用容器上的终端即可docker compose up 有没有办法做到这一点 我尝试执行以下操作 version 3 3
  • KSQL - 删除主题

    有没有办法从 KSQL 中删除该主题 根据github https github com confluentinc ksql blob 4 0 x ksql engine src main java io confluent ksql dd
  • 为什么我无法在 Flutter ModalBottomSheet 中滚动自定义 WebView

    大家好 有人知道为什么我无法在 ModalBottomSheet 中垂直滚动 WebView 吗 这是我的代码 如果有任何问题请告诉我或给我一些建议 showModalBottomSheet context context isScroll
  • 在 Fabric 中作为 sudo 执行

    我有一个命令service app start demo需要我输入sudo service app start demo在命令行中 I used sudo service app start demo and sudo sudo servi
  • Flutter setState 改变,但不重新渲染

    我创建了一个简单的屏幕 它接受字母列表并将它们呈现在网格中 我有一个带有随机播放方法的按钮 可以随机播放此列表 在我的构建方法中 我看到状态正在使用新列表进行更新 并且每次按下按钮时都会打印出一个随机列表 但屏幕不会改变 class Let
  • 有没有一种方法可以在不添加 throws 声明的情况下抛出异常?

    我有以下情况 我有一个 Java 类 它继承自另一个基类并重写一个方法 基本方法不会抛出异常 因此没有throws 宣言 现在我自己的方法应该能够抛出异常 但我可以选择 吞掉异常或 添加抛出声明 两者都不令人满意 因为第一个会默默地忽略异常