如何重写 Java 中的类方法并向其添加“抛出”声明?

2024-02-26

Android 中是否有可能有一个“抛出”东西的 AsyncTask?如果我不 @Override 该方法,则不会调用它。如果我在末尾添加“抛出”,则会出现编译器错误。例如,我想做类似的事情:

class testThrows extends AsyncTask<String,Void,JSONObject> {
   @Override
   protected JSONTokener doInBackground(<String>... arguments) throws JSONException {
      String jsonString = arguments[0];
      JSONTokener json = new JSONTokener(jsonString);
      JSONObject object = json.getJSONObject("test");
      return object;
   }
}

json.getJSONObject 抛出 JSONException。有什么办法可以做到这一点吗?


您需要做的是将异常包装为运行时(未经检查的)异常(通常类似于IllegalArgumentException;或者如果没有任何内容符合语义,则简单RuntimeException),并将检查的异常指定为“根本原因”(通常作为构造函数参数)。

不,您不能扩大检查异常集:这将违反基本的面向对象原则,类似于您不能降低可见性(例如从公共到私有)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何重写 Java 中的类方法并向其添加“抛出”声明? 的相关文章

  • 从休眠乐观锁定异常中恢复

    我有一个这样的方法 Transactional propagation Propagation REQUIRES NEW public void doSomeWork Entity entity dao loadEntity do some
  • 添加到列表时有没有办法避免循环?

    我想知道这样的代码 List
  • Android 上的 MIDI:Java 和/或 AIR 库

    一段时间以来 我一直在考虑在 iPad 上 重新 构建一个应用程序 其中我将使用 Objective C 和DSMI http dsmi tobw net 将 MIDI 信号发送到主机 这还不错 我的意思是 除了实际编写应用程序之外 现在我
  • 如何删除日期对象的亚秒部分

    当 SQL 数据类型为时间戳时 java util Date 存储为 2010 09 03 15 33 22 246 如何在存储记录之前将亚秒设置为零 例如 在本例中为 246 最简单的方法是这样的 long time date getTi
  • 安卓。 CalendarView...一次仅显示一个月的日历

    我正在使用 CalendarView 其中我想一次仅查看一个月的日历并滚动查看下个月 但 CalendarView 一次显示所有月份 下面是我的代码
  • Java:如何确定文件所在的驱动器类型?

    Java 是否有一种独立于平台的方法来检测文件所在的驱动器类型 基本上我有兴趣区分 硬盘 可移动驱动器 如 USB 记忆棒 和网络共享 JNI JNA 解决方案不会有帮助 可以假设 Java 7 您可以使用 Java 执行 cmd fsut
  • 我们如何测试包私有类?

    我正在看书Effective Java in Item 13 Minimize the accessibility of classes and members 它提到 为了方便测试 您可能想让类 接口或成员更易于访问 这在某种程度上是好的
  • 在 Clojure 中解压缩 zlib 流

    我有一个二进制文件 其内容由zlib compress在Python上 有没有一种简单的方法可以在Clojure中打开和解压缩它 import zlib import json with open data json zlib wb as
  • 无法在 Java/Apache HttpClient 中处理带有垂直/管道栏的 url

    例如 如果我想处理这个网址 post new HttpPost http testurl com lists lprocess action LoadList 401814 1 Java Apache 不允许我这么做 因为它说竖线 是非法的
  • Play.application() 的替代方案是什么

    我是 Play 框架的新手 我想读取conf文件夹中的一个文件 所以我用了Play application classloader getResources Data json nextElement getFile 但我知道 play P
  • 无法使用 findViewById() 找到视图

    我找不到TextView通过致电findViewById 即使 ID 确实存在 OtherActivity public class OtherActivity extends Activity Override protected voi
  • Karaf / Maven - 无法解决:缺少需求 osgi.wiring.package

    我无法在 Karaf 版本 3 0 1 中启动捆绑包 该包是使用 Maven 构建的并导入gson http mvnrepository com artifact com google code gson gson 2 3 1 我按照要求将
  • Android SearchView 在启动时隐藏键盘

    我有一个小问题正在尝试解决 当我打开应用程序时 键盘会显示输入搜索视图的查询 不过 我只想在单击搜索视图时显示键盘 我该如何解决 Thanks 这对我有用 用于隐藏焦点的代码 searchView SearchView view findV
  • 使用Java绘制维恩图

    我正在尝试根据给定的布尔方程绘制维恩图 例如 a AND b AND c我想在 Android 手机上执行此操作 因此我需要找到一种使用 Java 来执行此操作的方法 我找到了一个完美的小部件 它可以完成我在这方面寻找的一切布尔代数计算器
  • 受信任的网络活动 - 地址栏不隐藏(Android 72 的 Chrome)

    我已经关注了this https developers google com web updates 2017 10 using twa了解如何使用受信任的 Web 活动的指南 一切正常 但地址栏仍然出现 一开始我认为这是因为当应用程序正在
  • Android 标记如何实现拖放?

    你好 我正在 Android 中开发 MapView 应用程序 我有三个标记 我希望稍后能够使用 Google Map API getlocation function 为了尝试一下 我想使用拖放功能移动标记 然后检查位置 任何人都可以通过
  • 替换文件中的字符串

    我正在寻找一种方法来替换文件中的字符串而不将整个文件读入内存 通常我会使用 Reader 和 Writer 即如下所示 public static void replace String oldstring String newstring
  • 记录类名、方法名和行号的性能影响

    我正在我的 java 应用程序中实现日志记录 以便我可以调试应用程序投入生产后可能出现的潜在问题 考虑到在这种情况下 人们不会奢侈地使用 IDE 开发工具 以调试模式运行事物或单步执行完整代码 因此在每条消息中记录类名 方法名和行号将非常有
  • 即使调整大小,如何获得屏幕的精确中间位置

    好的 这个问题有两部分 当我做一个JFrame 并在其上画一些东西 即使我将宽度设置为 400 并使其在一个项目击中它时 当然 允许项目宽度 它会反弹回来 但由于某种原因 它总是偏离屏幕约 10 个像素 有没有办法解决这个问题 或者我只需要
  • 如何访问我的 Android 程序中的联系人

    我正在制作一个短信应用程序 并且想要访问我的 Android 应用程序中的联系人 我想访问联系人 就像他们在实际联系人列表中一样 选择后 我需要返回到我的活动 在其中我可以向该人发送短信 或者是否可以访问存储联系人的数据库 我的代码如下所示

随机推荐

  • Paw 在外部浏览器中打开链接

    在开发端点时 我需要遵循相当复杂 繁琐的登录过程来向我们的网守进行身份验证 为此 我在 Paw 中打开开发人员登录页面 它在爪子内部打开并正确呈现内容 如果我单击按钮实际登录 则会打开外部浏览器 导致 Paw 无法跟踪正确的 cookie
  • 使用 strcmp 比较字符数组中的字符

    我已将 xml 文件读入 char 中 并尝试将该数组中的每个元素与某些字符 例如 进行比较 char 数组 test 只是一个包含一个元素的数组 包含要比较的字符 我必须这样做 否则 strcmp 方法会给我一个有关将 char 转换为
  • AzureML:“训练火柴盒推荐器”不起作用,并且没有描述错误

    我尝试使用该模块创建自己的实验 但未能成功 这是我得到的例外 错误 0018 用户 项目 评分三元组的训练数据集包含无效数据 关键 InputParameters DataTable Rows 14 Columns 3 estimatedS
  • 协议与自身的行为

    我最近在读Swift 中的协议 通用类型约束和数组 http letvargo mooo com protocols generic type constraints and arrays in swift 我的问题涉及博客中的以下两个示例
  • 线程安全,无易失性

    谁能解释为什么这个例子是线程安全的 没有易失性 http www cs umd edu pugh java memoryModel DoubleCheckedLocking html http www cs umd edu pugh jav
  • html5 相机输入可以在 Windows 10 平板电脑上使用吗?

    TL DR html5 相机输入可以在 Windows 10 平板电脑上使用吗 Details 设备 Dell Venue 8 Pro 平板电脑 操作系统 Windows 10 浏览器 Chrome Setup 使用以下 html 创建并托
  • 带参数的 before_filter

    我有一个方法可以执行以下操作 before filter authenticate rights only gt show def authenticate rights project Project find params id red
  • 如何在命令中传递对象参数?

    我使用带有参数的新命令创建了 eclipse rcp 项目的plugin xml ArrayList
  • itertools.islice 与列表切片比较

    我一直在尝试应用一种算法根据特定标准将 python 列表缩小为较小的列表 由于原始列表的体积很大 大约有 100k 个元素 我尝试使用 itertools 来避免多次内存分配 所以我想出了这个 reducedVec F if sum 1
  • 使用 Bash 发出 POST 请求

    我有 100 个 Jetpack 必须登录才能配置 我正在尝试在 bash 脚本中执行此操作 但我没有运气 我可以毫无问题地连接到 wifi 但我的 POST 请求没有实现任何目标 有什么建议吗 这是我的 github 的链接 我有在 Bu
  • 构建给定文本中最常用单词的 ASCII 图表 [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的答案或互动 挑战
  • 每个页面上都需要InitializeCulture()吗?

    我有一个需要本地化的网络表单网站 我的意思是 它是本地化的 我只需要根据域设置正确的语言即可 就像是 protected override void InitializeCulture var i Request Url Host ToLo
  • 如何分割文件并保留每个部分的第一行?

    Given 一个大文本数据文件 例如 CSV 格式 具有 特殊 第一行 例如字段名称 Wanted coreutils 的等价物split l命令 但附加要求原始文件中的标题行出现在每个结果片段的开头 我猜是一些混合物split and h
  • 如何查找整数数组中每个元素的排名

    我想找出数组中每个元素从0开始的排名 例如 arr 2 1 3 rank will be 1 0 2 解释 rank of 2 is 1 because 2 is greater than exactly 1 element rank of
  • 按钮控件和 TBitmap 的底层替代品,无需编写预混合代码即可正确处理 PNG 透明度

    Delphi 2010的TSpeedButtons似乎并没有真正正确支持PNG透明度 因为Glyph属性内部使用TBitmap 而TBitmap用于位图 并且不能正确支持PNG透明度 那么TSpeedButton Glyph就无法支持透明度
  • 中止 Linux 上的阻塞读取

    我在线程中运行的 Linux 中有一个阻塞读取 在程序关闭期间 我想使线程脱离此读取 不幸的是 我无法使用轮询或选择并编写正确的代码 因为读取的文件是不实现轮询 选择功能的设备驱动程序 作为临时解决方案 我当前通过 pthread kill
  • 将 Access 2010 转换为旧版本

    我希望能够使用脚本将 Access 2010 数据库转换为多个不同的旧版本 因此 如果我将 2010 Access 提供给脚本 我希望它输出以下版本之一 2000 2002 2003 或 2007 这怎么可能 我不是在寻找完整的脚本 而是在
  • gvim:轻松复制到系统剪贴板

    我在 Ubuntu 10 10 上使用 gVim 我想将文本复制 猛拉 到系统剪贴板 以便复制的文本可在其他应用程序中使用 这适用于 y 但我想让它与y 我尝试过绘制地图y to y但是之后yy不再工作 因为它产生 y y 我也尝试过 se
  • 可选类型注释。检查是否为 None 后使用值?

    我正在用 python 编写一些带有类型注释的代码 我对可选类型有疑问 例如对于这样的代码 maybe number Optional int definition if maybe number None else I know its
  • 如何重写 Java 中的类方法并向其添加“抛出”声明?

    Android 中是否有可能有一个 抛出 东西的 AsyncTask 如果我不 Override 该方法 则不会调用它 如果我在末尾添加 抛出 则会出现编译器错误 例如 我想做类似的事情 class testThrows extends A