java - 多捕获或异常层次结构
问题描述
与 Clean Code 更一致的是什么。使用 Multicatch 或创建超类 Exception 并捕获它。
try {
//some action
} catch (Exception1 | Exception2 e) {
//some action after exception
}
或者
Exception1 extends SuperClassException
Exception2 extends SuperClassException
try {
//some action
} catch (SuperClassException e) {
//some action after exception
}
解决方案
与 Clean Code 更一致的是什么。使用 Multicatch 或创建超类 Exception 并捕获它。
干净的代码在这里并没有真正的帮助。因为我想不出任何指向这两个选项之一的明显规则。因此,我认为这归结为(个人/团队)风格。
最后,这两种方法各有利弊:
第一个更详细,因为它准确地告诉您将捕获哪些异常。你看看它,你就知道了。
第二个隐藏了这一事实,因为您真的看不到“有多少”异常可能属于该类别。但是,当然,在一定程度上,multi catch 也存在同样的问题,因为您也可以用它来捕获一个或多个基本异常类型。
从这个角度来看,我的建议是:
- 当您几乎没有明显的异常时,只需列出它们(尤其是当当前没有可以使用的明显超类时)
- 当不需要特定的类型信息时,当然,只捕获一个超类型的东西
推荐阅读
- windows - 在 Windows 10 的开发人员功能中禁用旁加载?
- java - 导入包含导入的描述符
- vue.js - Vuex - Mutation 类型的常量,但不是 Actions 和 Getters?
- angular - Angular 2 - 如何从组件插入带有翻译管道的html元素
- deep-linking - 分支 LiveView 显示在页面加载时触发的链接
- android - 人脸识别认证android实现
- javascript - 滚动时在网格顶部保留表格标题
- asp.net-web-api - Xamarin Forms 条件语句
- asp.net-core - 如何从本地 nuget 包创建元包(所有包的包)?
- java - 以编程方式检查 domino 文档中的字段是 Text 还是 TextList - 可能吗?