当检索方法无法产生返回值时,它应该返回“null”还是抛出异常? [关闭]

2024-01-13

我使用java语言,我有一个方法,如果找到一个对象,它应该返回一个对象。

如果没有找到,我应该:

  1. 返回空值
  2. 抛出异常
  3. other

哪个是最佳实践或习惯用法?


如果您总是期望找到一个值,那么如果该值丢失则抛出异常。异常就意味着存在问题。

如果该值可能缺失或存在,并且两者对于应用程序逻辑都有效,则返回 null。

更重要的是:你在代码的其他地方做了什么?一致性很重要。

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

当检索方法无法产生返回值时,它应该返回“null”还是抛出异常? [关闭] 的相关文章

随机推荐

  • 将内容置于绝对定位的 div 中

    我有一个绝对定位的元素 里面有内容 它可以是一个 h1 或几个 p 标签 所以我不知道内容的高度 我怎么能够内容垂直居中绝对定位内div HTML p div div class centerd h1 helo h1 span hi aga
  • 如何从c中的sock结构中获取ip地址?

    我正在编写简单的服务器 客户端 并尝试获取客户端 IP 地址并将其保存在服务器端 以决定哪个客户端应该进入关键部分 我用谷歌搜索了好几次 但找不到从袜子结构中获取IP地址的正确方法 我相信这是服务器接受客户端请求后从 sock 结构获取 I
  • Python“除了”失败

    我想知道你是否可以重新引发一个 特定的 捕获的异常 并让它被稍后的 一般的 捕获 除了在同一个 try except 中 例如 我想对特定的 IOError 执行某些操作 但如果它不是预期的 IOError 则应像处理任何其他错误一样处理该
  • Python 中的图像抓取程序未按预期运行

    我的代码只返回一个空字符串 我不知道为什么 import urllib2 def getImage url page urllib2 urlopen url page page read Gives HTML to parse start
  • Z_DATA_ERROR,ERRNO -3,zlib:数据检查不正确,MBA M1

    最近 我在 MacBook Air M1 机器上使用最新的 Node 和 NPM 安装依赖项时遇到了问题 然后我发现M1不支持最新的Node版本 所以我的解决方案是使用 NVM 并将其更改为 Node v14 16 一切都运行良好 但是当我
  • Angular 2:“...”的路由生成器未包含在传递的参数中

    所以我的 AuthenticationService 中有以下代码 检查登录凭据后 用户将被重定向到他们的个人资料 authentication service ts redirectUser username string void Re
  • 适用于 Android 的 Tensorflow 量化图

    我正在尝试将量化图表加载到 Android 应用程序中 我的构建文件包含 deps tensorflow core android tensorflow lib tensorflow contrib quantization cc arra
  • 多个描述元标记有效吗?

    用不同的语言定义多个元描述是否有效 这是有效的吗 有效 是的 搜索引擎正确处理 目前看来并非如此 大多数 SEO 验证者都会抱怨多个描述 即使它们被标记为不同的语言代码 并且如前所述 在某些情况下会被视为垃圾邮件进行处罚 没有理由不让一个页
  • 消费者不使用 Riverpod 重建 UI

    我正在尝试使用 Riverpod 制作简单的 stateNotifier 当我单击按钮时 它将在值之间切换 我检查了该值 按下按钮时它会发生变化 问题是 UI 没有自行重建 我已经检查了文档并且非常确定我做得正确 主屏幕 class Hom
  • 如何在生成下载文件时显示加载动画?

    我有一个 Web 应用程序 用户可以在其中生成 PDF 和 PowerPoint 文件 这些文件可能需要一些时间才能生成 因此我希望能够在生成时显示加载动画 这里的问题是我无法知道下载何时开始 动画永远不会消失 我知道可以 在侧面 生成文件
  • 通过本机 Java API 验证 Windows 用户凭据

    我需要存储 Windows 用户名和凭据 以便稍后运行一些需要这些凭据的进程 当我收集这些作为用户的输入时 我想验证凭据是否正确 Java 中是否有原生 api 可以帮助我验证 Windows 系统凭据 我正在经历LoginContext类
  • 第一个 li 的 JQuery 选择器

    当用户单击第一个 li 又名 任何日期 时 我需要一个 onclick 事件 如何使用 jQuery 选择该元素 ul class ui menu ui widget ui widget content li class ui menu i
  • 为什么 Swift 会隐式解包可选的“nil”?

    self presentTextInputControllerWithSuggestions nil allowedInputMode WKTextInputMode Plain results AnyObject gt Void in r
  • 出生日期限制

    我想将日期选择器对话框限制为至少选择 18 岁 val c Calendar getInstance val year c get Calendar YEAR val month c get Calendar MONTH val day c
  • 如何实现基于行的文件内容的并行处理

    我正在编写一个 POC 来处理一个非常大的文本文件 约 10 亿行以上 并正在为此尝试使用 Go package main import bufio fmt log os time func main start time Now file
  • 相互递归类

    如何在 C 中实现相互递归类 就像是 Recursion h ifndef RECURSION H define RECURSION H class Class1 Class2 Class2 ptr public void Class1 m
  • 访问 TKinter 脚本中的主线程?

    我想明白为什么我收到以下错误TclStackFree incorrect freePtr Call out of sequence 但我不知道如何解决这个问题 我的脚本摘要 My Python TKinter脚本由三个活动线程组成 主线程和
  • 学习 JavaScript 的好资源 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何生成新的 shell 以从基本 Python 脚本运行 Python 脚本?

    我已经成功运行了几个 Python 脚本 并使用 subprocess 模块从基本脚本调用它们 subprocess popen sys executable script py shell True 但是 每个脚本都会执行一些模拟 来自
  • 当检索方法无法产生返回值时,它应该返回“null”还是抛出异常? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我使用java语言 我有一个方法 如果找到一个对象 它应该返回一个对象 如果没有找到 我应该 返回空值 抛出异常 other 哪个是最佳实践或习