抛出异常与使用 switch 语句返回空值

2023-12-20

所以我有一个函数可以格式化日期以强制给定的枚举 DateType{CURRENT, START, END} 在使用 switch 语句的情况下处理返回值的最佳方法是什么

public static String format(Date date, DateType datetype) {
    ..validation checks

    switch(datetype){
    case CURRENT:{
        return getFormattedDate(date, "yyyy-MM-dd hh:mm:ss");
    }               
    ... 
     default:throw new ("Something strange happend");
    }

}

或者在最后抛出异常

   public static String format(Date date, DateType datetype) {
            ..validation checks

            switch(datetype){
            case CURRENT:{
                return getFormattedDate(date, "yyyy-MM-dd hh:mm:ss");
            }               
            ... 
            }

               //It will never reach here, just to make compiler happy 
        throw new IllegalArgumentException("Something strange happend");    
        }

或返回空值

public static String format(Date date, DateType datetype) {
            ..validation checks

            switch(datetype){
            case CURRENT:{
                return getFormattedDate(date, "yyyy-MM-dd hh:mm:ss");
            }               
            ... 
            }

             return null;   
}

这里的最佳实践是什么?此外,所有枚举值都将在 case 语句中处理


抛出异常,因为这是一个例外情况。

并把它扔到外面switch,它会更具可读性。否则听起来就像“默认情况是例外”。

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

抛出异常与使用 switch 语句返回空值 的相关文章

  • Spring Batch 多线程 - 如何使每个线程读取唯一的记录?

    这个问题在很多论坛上都被问过很多次了 但我没有看到适合我的答案 我正在尝试在我的 Spring Batch 实现中实现多线程步骤 有一个包含 100k 条记录的临时表 想要在 10 个线程中处理它 每个线程的提交间隔为 300 因此在任何时
  • Java中反射是如何实现的?

    Java 7 语言规范很早就指出 本规范没有详细描述反射 我只是想知道 反射在Java中是如何实现的 我不是问它是如何使用的 我知道可能没有我正在寻找的具体答案 但任何信息将不胜感激 我在 Stackoverflow 上发现了这个 关于 C
  • JAXb、Hibernate 和 beans

    目前我正在开发一个使用 Spring Web 服务 hibernate 和 JAXb 的项目 1 我已经使用IDE hibernate代码生成 生成了hibernate bean 2 另外 我已经使用maven编译器生成了jaxb bean
  • 控制Android的前置LED灯

    我试图在用户按下某个按钮时在前面的 LED 上实现 1 秒红色闪烁 但我很难找到有关如何访问和使用前置 LED 的文档 教程甚至代码示例 我的意思是位于 自拍 相机和触摸屏附近的 LED 我已经看到了使用手电筒和相机类 已弃用 的示例 但我
  • 列出jshell中所有活动的方法

    是否有任何命令可以打印当前 jshell 会话中所有新创建的方法 类似的东西 list但仅适用于方法 您正在寻找命令 methods all 它会打印所有方法 包括启动 JShell 时添加的方法 以及失败 被覆盖或删除的方法 对于您声明的
  • 反射找不到对象子类型

    我试图通过使用反射来获取包中的所有类 当我使用具体类的代码 本例中为 A 时 它可以工作并打印子类信息 B 扩展 A 因此它打印 B 信息 但是当我将它与对象类一起使用时 它不起作用 我该如何修复它 这段代码的工作原理 Reflection
  • Liferay ClassNotFoundException:DLFileEntryImpl

    在我的 6 1 0 Portal 实例上 带有使用 ServiceBuilder 和 DL Api 的 6 1 0 SDK Portlet 这一行 DynamicQuery query DynamicQueryFactoryUtil for
  • 操作错误不会显示在 JSP 上

    我尝试在 Action 类中添加操作错误并将其打印在 JSP 页面上 当发生异常时 它将进入 catch 块并在控制台中打印 插入异常时出错 请联系管理员 在 catch 块中 我添加了它addActionError 我尝试在jsp页面中打
  • 从 127.0.0.1 到 2130706433,然后再返回

    使用标准 Java 库 从 IPV4 地址的点分字符串表示形式获取的最快方法是什么 127 0 0 1 到等效的整数表示 2130706433 相应地 反转所述操作的最快方法是什么 从整数开始2130706433到字符串表示形式 127 0
  • Java TestNG 与跨多个测试的数据驱动测试

    我正在电子商务平台中测试一系列商店 每个商店都有一系列属性 我正在考虑对其进行自动化测试 是否有可能有一个数据提供者在整个测试套件中提供数据 而不仅仅是 TestNG 中的测试 我尝试不使用 testNG xml 文件作为机制 因为这些属性
  • 总是使用 Final?

    我读过 将某些东西做成最终的 然后在循环中使用它会带来更好的性能 但这对一切都有好处吗 我有很多地方没有循环 但我将 Final 添加到局部变量中 它会使速度变慢还是仍然很好 还有一些地方我有一个全局变量final 例如android Pa
  • AWS 无法从 START_OBJECT 中反序列化 java.lang.String 实例

    我创建了一个 Lambda 函数 我想在 API 网关的帮助下通过 URL 访问它 我已经把一切都设置好了 我还创建了一个application jsonAPI Gateway 中的正文映射模板如下所示 input input params
  • 仅将 char[] 的一部分复制到 String 中

    我有一个数组 char ch 我的问题如下 如何将 ch 2 到 ch 7 的值合并到字符串中 我想在不循环 char 数组的情况下实现这一点 有什么建议么 感谢您花时间回答我的问题 Use new String value offset
  • 如何从终端运行处理应用程序

    我目前正在使用加工 http processing org对于一个小项目 但是我不喜欢它附带的文本编辑器 我使用 vim 编写所有代码 我找到了 pde 文件的位置 并且我一直在从 vim 中编辑它们 然后重新打开它们并运行它们 重新加载脚
  • Java列表的线程安全

    我有一个列表 它将在线程安全上下文或非线程安全上下文中使用 究竟会是哪一个 无法提前确定 在这种特殊情况下 每当列表进入非线程安全上下文时 我都会使用它来包装它 Collections synchronizedList 但如果不进入非线程安
  • 声明的包“”与预期的包不匹配

    我可以编译并运行我的代码 但 VSCode 中始终显示错误 早些时候有一个弹出窗口 我不记得是什么了 我点击了 全局应用 从那以后一直是这样 Output is there but so is the error The declared
  • simpleframework,将空元素反序列化为空字符串而不是 null

    我使用简单框架 http simple sourceforge net http simple sourceforge net 在一个项目中满足我的序列化 反序列化需求 但在处理空 空字符串值时它不能按预期工作 好吧 至少不是我所期望的 如
  • Firebase 添加新节点

    如何将这些节点放入用户节点中 并创建另一个节点来存储帖子 我的数据库参考 databaseReference child user getUid setValue userInformations 您需要使用以下代码 databaseRef
  • 有没有办法为Java的字符集名称添加别名

    我收到一个异常 埋藏在第 3 方库中 消息如下 java io UnsupportedEncodingException BIG 5 我认为发生这种情况是因为 Java 没有定义这个名称java nio charset Charset Ch
  • 使用 xpath 和 vtd-xml 以字符串形式获取元素的子节点和文本

    这是我的 XML 的一部分

随机推荐

  • [DllImport] 正在加载哪个 DLL?

    我正在使用 DllImport 属性将本机 DLL 导入到我的应用程序中 但它加载的 DLL 不在本地 bin 文件夹中 它是从系统上的其他地方加载的 但我不知道在哪里 它可以在我的开发机器上运行 但不能在干净的机器上运行 我已启用 Fus
  • 如何更新 ListView 项目中的进度条

    我有一个ListView附加到一个ArrayAdapter 当用户单击某个项目的下载按钮时ListView下载开始使用DownloadManager 我想要做的是用进度条 放置在项目布局中 跟踪下载进度 如何才能实现这一目标 Pocket
  • 将 int64_t 转换为 double

    int64 t a 1234 double d double a 这是推荐的方式吗 use static cast正如斯特雷格的回答 我建议against使用隐式转换 甚至 C 源代码中的 C 风格转换 有以下几个原因 隐式转换是编译器警告
  • 在 Angular ui-router 中从数组对象创建状态

    我可以像这样从一个对象创建一个状态 var stateTest name 2 views video templateUrl templates 2 video html controller VideoCtrl content templ
  • 符号在 C#.NET 中的含义是什么? [复制]

    这个问题在这里已经有答案了 可能的重复 是什么 运算符为 https stackoverflow com questions 827454 what is the operator for 我看到一行代码 其中指出 return str s
  • 如何使用解耦的 API 在单页应用程序 (SPA) 中安全地实现身份验证

    我一直在研究如何最好地在单页应用程序 SPA 中存储身份验证令牌 SO 上关于这个主题存在一些争论 但据我所知 没有一个提供具体的解决方案 昨天和今天花了很多时间在互联网上寻找答案 我发现了以下内容 本地存储 API 我发现一些基本指南建议
  • 熊猫升级版

    我在 Windows 机器上运行 Python 路径如下 C WinPython 64bit 3 4 4 1 我正在尝试升级到最新版本的 pandas 当前运行 0 17 1 但遇到问题 我查看了以前的帖子并尝试使用命令行 c gt pip
  • 有没有办法将 require_once() 的范围显式设置为全局?

    我正在寻找一种方法来设置范围require once 到全局范围 当require once 在函数内部使用 像下面的代码应该可以工作 文件 foo php
  • char * 和 char[]

    为什么这是对的 include
  • 使用 jq 删除 JSON 值中的重复项

    我有以下 JSON function ping name start servers load 581 6875 last heard 2 379324197769165 version 1 0 hidden false pid 19735
  • 参数.被调用者替代方案

    As arguments callee将被弃用 我将在以下表达式中使用什么来代替arguments callee var self this this async function if test then else self async
  • 通过 JMH 测量 sun.misc.Unsafe.compareAndSwap 中的奇怪行为

    我决定使用不同的锁定策略来测量增量 并为此使用 JMH 我使用 JMH 来检查吞吐量和平均时间 并使用简单的自定义测试来检查正确性 有六种策略 原子数 读写锁定计数 与易失性同步 无易失性的同步块 sun misc Unsafe compa
  • 使用 eval() 是否有充分的理由?

    在我看来 这eval 受到与 goto 相同的蔑视 并由eval 我的意思是一个将字符串作为代码执行的函数 如 PHP Python JavaScript 等中所示 是否存在使用eval 是否合理 perl 除外 如果没有 为什么有这么多语
  • SQL:使用 NULL 值与默认值

    什么是pros and cons使用的空值在 SQL 中而不是默认值 附言 这里已经提出了许多类似的问题 但没有一个回答我的问题 我不知道你为什么要把这些与案例进行比较 null意味着某些列是空的 没有值 而当我们不在查询中直接设置它时 默
  • Zsh 想要自动更正命令,前面有一个 _

    我最近刚刚开始使用 Zsh 在 shell 提示符中获得一些集成支持 以显示我的 Git 状态等 当我输入 ruby v 为了确认我正在运行的 ruby 版本 Zsh 询问我是否要将命令更改为 ruby 在提示符处说 不 并且命令按预期完成
  • Azure 持久函数示例显示不允许同步函数

    我正在逐步完成 Azure 培训 我目前正在看https learn microsoft com en us learn modules create long running serverless workflow with durabl
  • 使用 htaccess 修复拼写错误的 url

    所以我的网站有一个非常简单的问题 至少我认为如此 我需要能够将任何拼写错误的 URL 重定向到正确的 URL 如果我向你们解释它比描述它更容易 例如 我们以这个网址为例 http www tomshardware com reviews r
  • 如何在CSS中添加等于图像宽度一半的负边距?

    我正在使用图像height 100vh 因此根据屏幕的分辨率 其尺寸会发生变化 我想为其添加负左边距 等于其宽度的一半 这取决于屏幕分辨率 有什么解决方案可以只用 CSS 来做到这一点吗 如果负左位置取决于 half 元素宽度你可以这样做
  • #define/#undef 具有特殊含义的标识符是否属于未定义行为?

    对问题的回答禁用 gcc 中的覆盖检查 https stackoverflow com q 30303228 1708801建议使用 Doverride 在命令行上禁用错误使用的错误override http en cppreference
  • 抛出异常与使用 switch 语句返回空值

    所以我有一个函数可以格式化日期以强制给定的枚举 DateType CURRENT START END 在使用 switch 语句的情况下处理返回值的最佳方法是什么 public static String format Date date