我应该在函数中抛出 IllegalArgumentException 吗?

2024-01-03

我正在构建一个包含大量计算的科学软件,当然参数可能有错误的长度等......所以我使用IllegalArgumentException类,因为它似乎是这个问题的正确名称,但我应该把throws IllegalArgumentException在函数定义处?

我问这个是因为在我写完它之后,Eclipse 编辑器并没有要求我用 try 和 catch 包围该函数。我认为这就是 try 和 catch 的执行方式。我已经阅读了 Java.com 上的异常处理教程,但我不确定我是否正确理解了有关我的问题的部分。


RuntimeExceptions like IllegalArgumentException用来表示编程错误。程序本身很少能够处理它。需要有人手动修复代码。

潜在的RuntimeExceptions 应该以某种方式记录在函数契约(即 javadoc)中,或者使用显式@throws,或在描述输入时。如果您没有该函数的 javadoc,您可能希望添加 throws 子句只是为了记录使用该函数的潜在陷阱,但通常不鼓励为运行时异常添加 throws 子句。

如果给出错误的长度实际上并不是编程错误,而是异常情况,我将创建一个新的检查异常(例如 BadLengthError)。如果不是异常情况,不要使用异常进行流量控制。

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

我应该在函数中抛出 IllegalArgumentException 吗? 的相关文章

  • 使用 WebDriver 单击新打开的选项卡中的链接

    有人可以在这种情况下帮助我吗 场景是 有一个网页 我仅在新选项卡中打开所有指定的链接 现在我尝试单击新打开的选项卡中的任何一个链接 在下面尝试过 但它仅单击主 第一个选项卡中的一个链接 而不是在新选项卡中 new Actions drive
  • 如何在 Openfire 中使用 smack

    你好 我计划开发一个可以连接到 gtalk facebook 等的聊天客户端 我决定将 smack API 与 openfire 一起使用 但我需要很少的指导来了解如何将它与 openfire 服务器一起使用 openfire 是否提供了基
  • HAProxy SSL终止+客户端证书验证+curl/java客户端

    我希望使用我自己的自签名证书在 HAProxy 上进行 SSL 终止 并使用我创建的客户端证书验证客户端访问 我通过以下方式创建服务器 也是 CA 证书 openssl genrsa out ca key 1024 openssl req
  • 如何将jscrollpane添加到jframe?

    我有以下源代码 有人可以给我建议如何将 jscrollpane 添加到 jframe 上吗 我尝试了几次将其添加到 jframe 但没有任何进展 它甚至没有显示 public class Form3 JFrame jframe new JF
  • Android 中 localTime 和 localDate 的替代类有哪些? [复制]

    这个问题在这里已经有答案了 我想使用从 android API 获得的长值 该值将日期返回为长值 表示为自纪元以来的毫秒数 我需要使用像 isBefore plusDays isAfter 这样的方法 Cursor managedCurso
  • tomcat 7.0.50 java websocket 实现给出 404 错误

    我正在尝试使用 Java Websocket API 1 0 JSR 356 中指定的带注释端点在 tomcat 7 0 50 上实现 websocket 以下是我如何对其进行编码的简要步骤 1 使用 ServerEndpoint注解编写w
  • 为自定义驱动程序创建 GraphicsDevice

    我正在开发一个在嵌入式系统中使用 Java 的项目 我有用于屏幕和触摸输入的驱动程序 以及用于文本输入的虚拟键盘 我的屏幕驱动程序有一个Graphics2D您可以绘制的对象和repaint Rectangle 更新方法 类似地 触摸驱动器能
  • 如何检测图像是否像素化

    之前有人在 SO 上提出过这样的问题 在Python中检测像素化图像 https stackoverflow com questions 12942365 detecting a pixelated image in python还有关于q
  • 在 MongoDB 和 Apache Solr 之间同步数据的简单方法

    我最近开始使用 MongoDB 和 Apache Solr 我使用 MongoDB 作为数据存储 并且希望 Apache Solr 为我的数据创建索引 以实现应用程序中的搜索功能 经过一些研究 我发现 基本上有两种方法可以在 MongoDB
  • 我应该检查代码中的数据库约束还是应该捕获数据库抛出的异常

    我有一个将数据保存到名为 作业 的表中的应用程序 Jobs 表有一个名为 Name 的列 该列具有 UNIQUE 约束 名称列不是主键 我想知道在尝试保存 更新新条目之前是否应该自己检查重复条目 或者最好等待数据访问层抛出异常 如果这个应用
  • 用于缓存的 Servlet 过滤器

    我正在创建一个用于缓存的 servlet 过滤器 这个想法是将响应主体缓存到memcached 响应正文由以下方式生成 结果是一个字符串 response getWriter print result 我的问题是 由于响应正文将不加修改地放
  • Java:如何确定文件所在的驱动器类型?

    Java 是否有一种独立于平台的方法来检测文件所在的驱动器类型 基本上我有兴趣区分 硬盘 可移动驱动器 如 USB 记忆棒 和网络共享 JNI JNA 解决方案不会有帮助 可以假设 Java 7 您可以使用 Java 执行 cmd fsut
  • Spring Data JPA:查询如何返回非实体对象或对象列表?

    我在我的项目中使用 Spring Data JPA 我正在演奏数百万张唱片 我有一个要求 我必须获取各种表的数据并构建一个对象 然后将其绘制在 UI 上 现在如何实现我的 Spring 数据存储库 我读到它可以通过命名本机查询来实现 如果指
  • 我们如何测试包私有类?

    我正在看书Effective Java in Item 13 Minimize the accessibility of classes and members 它提到 为了方便测试 您可能想让类 接口或成员更易于访问 这在某种程度上是好的
  • 无法在 Java/Apache HttpClient 中处理带有垂直/管道栏的 url

    例如 如果我想处理这个网址 post new HttpPost http testurl com lists lprocess action LoadList 401814 1 Java Apache 不允许我这么做 因为它说竖线 是非法的
  • 避免 Java 中的重复导入:继承导入?

    有没有办法 继承 导入 Example 常见枚举 public enum Constant ONE TWO THREE 使用此枚举的基类 public class Base protected void register Constant
  • Hadoop NoSuchMethodError apache.commons.cli

    我在用着hadoop 2 7 2我用 IntelliJ 做了一个 MapReduce 工作 在我的工作中 我正在使用apache commons cli 1 3 1我把库放在罐子里 当我在 Hadoop 集群上使用 MapReduceJob
  • 使用 Java https 上传到 Imgur v3 错误

    我目前正在尝试使用他们当前的 API v3 上传到 imgur 但是我不断收到错误 错误 javax net ssl SSLException 证书中的主机名不匹配 api imgur com imgur com OR imgur com
  • try-with-resources 中出现死代码警告,但翻译后的 try-catch-finally 中没有出现死代码警告

    以下代码使用try 有资源 https docs oracle com javase specs jls se7 html jls 14 html jls 14 20 3Java 8 中引入的构造 偶尔抛出 方法被声明为抛出一个偶尔的异常
  • 混合本机/托管可执行文件中的最终托管异常处理程序?

    我有一个使用 clr 编译的 MFC 应用程序 并且我正在尝试为未捕获的托管异常实现最终处理程序 对于本机异常 重写CWinApp ProcessWndProcException works 杰夫的书中提到的两个事件代码项目文章 http

随机推荐

  • 如何获得用户身份?

    一旦用户经过身份验证和授权 应用程序就可以使用 User 对象的 Identity 属性获取有关用户的信息 Identity 属性返回一个包含用户名和角色信息的对象 下面是我用来理解这个概念的代码片段 private void Page L
  • 通过点击 primefaces p:autoComplete 中的 ENTER 事件来提交表单

    下面是我的代码
  • 将字符串文字分配给 char* [重复]

    这个问题在这里已经有答案了 可能的重复 如何摆脱deprecated conversion from string constant to char 海湾合作委员会的警告 https stackoverflow com questions
  • Java 7 新的 IO API - Paths.exists [重复]

    这个问题在这里已经有答案了 有谁知道发生了什么事path exists 最新的Java 7 API中的API方法 我在更改日志中找不到更改 并且在 b123 和 b130 之间 该方法已从 API 中删除 我看到有一个静态Files exi
  • 将 ImageView ScaleType 设置为“center”并没有像我预期的那样工作

    我的布局如下ImageView
  • Entity Framework 6 - 如何在调用 SaveChanges 之前查看将为插入生成的 SQL

    在实体框架 6 中 是否可以查看将为某个对象执行的 SQLinsert before调用 SaveChanges using var db new StuffEntities db Things Add new Thing can I ge
  • [JsonProperty] 在 C# 中有何用途?

    例如 为什么下面的代码需要它 如何进一步使用它 public class FileAttachment JsonProperty fileName public string FileName get set Per 文档 https ww
  • Python 线程上 daemon 属性的含义

    我对将线程设置为守护进程意味着什么有点困惑 文档是这样说的 线程可以被标记为 守护进程 线 这面旗帜的意义 是整个Python程序 仅当守护线程存在时退出 左边 初始值被继承 来自创建线程 旗帜可以 通过 daemon 属性进行设置 我不确
  • 打印和放置有什么区别?

    例如我写的这行代码 print and puts产生不同的结果 1 upto 1000 each i print i if i 2 0 puts如果还没有一行 则在每个参数的末尾添加一个新行 print不添加新行 例如 puts 1 2 3
  • 使矩阵数字和名称顺序

    我有以下数据 yvar lt c 1 150 replication lt c rep c rep 1 10 rep 2 10 rep 3 10 5 genotypes lt c rep paste G 1 10 sep 15 enviro
  • 如何使用企业库日志记录仅编写消息来调试输出?

    我想使用 EntLib Logging 实现日志记录 并为类别 调试 连接两个 TraceListener 一个会将这些消息写入文件 另一个会将它们输出到系统跟踪输出 与 Debug Write 的方式相同 以便我可以使用 Sysinter
  • 更改现有数据库上的哈希函数

    我正在阅读一些有关密码哈希的内容 我见过 SHA 256 gt MD5 这让我思考应用程序如何处理从一种哈希函数到另一种哈希函数的变化 如果有人实现一个使用 MD5 对其密码进行哈希处理的应用程序 会发生什么情况 然后他们决定 SHA 25
  • 在scala中读取UTF-8格式的xml

    我正在尝试使用以下代码将文件读取为 xml import scala xml object HebrewToEnglishCityTranslator val data XML loadFile cities hebrew utf xml
  • 根据设备屏幕尺寸(hdpi/ldpi/mdpi)调用函数

    在 mdpi 设备上我想调用这个方法 final float scale getResources getDisplayMetrics density double height px 45 scale 0 5 但当应用程序在 hdpi 设
  • 《apyori模块的RelationRecord对象》apriori算法python

    请原谅我的英语不好 我试图识别一组数据中经常出现的属性 以使用 python 的 apyori 包推断出分类 我正在练习 20772 笔交易的数据框 最大的交易是 543 项 数据框 https i stack imgur com a2c9
  • 将分数转换为十六进制

    假设您有一个数字 28 5 您需要将其转换为十六进制 28 是 1C 29 是 1D 但是 28 5 会是什么呢 你甚至可以转换它吗 我问这个是因为我正在用 JavaScript jsyk 制作一个转换器 Use n toString 16
  • 将 php 脚本作为守护进程运行

    我需要运行一个 php 脚本作为守护进程 等待指令并执行操作 cron 作业不会为我做这件事 因为指令到达后需要立即采取行动 我知道由于内存管理问题 PHP 并不是守护进程的最佳选择 但由于各种原因 我在这种情况下必须使用 PHP 我遇到了
  • 在C中逐行读取文件

    Preface 这道题是关于逐行读取文件 并将每一行插入到一个链表中 我已经编写了链表的实现 并测试了insert 手动功能 这有效 我还编写了从文件中读取文本并将其写出的代码 同样 这也有效 好的 这是我的问题 我怎样才能合并这些概念 以
  • Dart:将十进制转换为十六进制

    我一直在寻找一种在 Dart 编程语言中将十进制数转换为十六进制格式的方法 The hex encode方法中的HexCodec例如 类无法转换十进制 1111 其十六进制值为 457 而是给出异常 FormatException 无效字节
  • 我应该在函数中抛出 IllegalArgumentException 吗?

    我正在构建一个包含大量计算的科学软件 当然参数可能有错误的长度等 所以我使用IllegalArgumentException类 因为它似乎是这个问题的正确名称 但我应该把throws IllegalArgumentException在函数定