- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
在我的类里面,我正在对自定义数据进行验证。许多条件适用。一旦失败,我想抛出一个特定的 MyException。抛出此 MyException 需要许多通用参数和一个自定义参数(基于实际失败)。因此,实际的抛出需要编写许多字符,并且由于代码重复而破坏了整洁性。我也不得不扔它太多次。我决定创建一个私有(private)方法来准备并返回此 MyException 的新实例,并将唯一的自定义数据作为参数,这样代码可以更简洁。
private MyException createMyException(final CustomErrorData errorData)
{
... some info gathering, parameterizing, etc...
return new MyException(errorData);
}
...
所以抛出一个新的 MyException 要短得多:
throw createMyException(errorData);
我的问题是:在这种情况下,防止代码重复的正确做法是什么?我可能过度混淆了异常。
最佳答案
异常工厂 - 以前从未见过,但至少听起来是一个合适的设计。
我只是担心 - 你似乎在设计一个异常抛出框架上付出了很多努力:向异常添加参数、状态等。您真的在代码中遇到那么多异常情况吗?或者您是否在正确处理预期 条件的地方抛出异常?
通常抛出的异常是“仅针对日志”。发生了在当前情况下不应该发生的事情。有些东西,开发人员应该知道并在下一个版本中更正。我们不应该使用异常来处理预期状态。
因此,在研究出色的异常创建代码之前,请仔细检查它是否值得付出努力,或者您的应用程序的设计是否开始变得……太有创意了。
关于Java,返回新的 MyException : anti-pattern?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9602881/
在数据库中,您有一个带有位字段的表,我们将该字段称为Active 在应用程序中你有一个 bool 变量,我们称之为NotActive 每次从表中获取字段时,在应用程序中您都会切换变量的含义。 NotA
我在我的 iPhone 应用程序中查看一些动画,感觉它有点难看。然后我明白了:它只是不通过子像素状态进行动画处理。 所以,如果我使用通常的+beginAnimations/+commitAnimati
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
我记得在某处看到过有关此问题的辩论,并且目前正在考虑删除我正在处理的系统中的每个业务对象都继承自的基础对象。它包含一些属性、一些数据库逻辑和一些构造函数逻辑。 这是一种反模式,还是陪审团还在外面?有一
我正在从事一个人脸识别项目,我可以首先注册自己,然后启动一个识别脚本,该脚本将启动我的网络摄像头,它会识别我自己。我正在关注这个 article它的工作非常好。 我注意到的是,如果我将我的照片展示给相
我在软编码反模式上感到Wikipedia entry简洁而令人困惑。那么什么是软编码?在什么设置下,这是不好的做法(反模式)?另外,什么时候可以认为它是有益的,如果是这样,应该如何实施? 最佳答案
关闭。这个问题是opinion-based .它目前不接受答案。 想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题. 3年前关闭。 Improve t
Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。 想改善这个问题吗?更新问题,以便将其作为on-topic
我正在努力让自己深入了解 JavaScript,目前正在学习它。 在数组中,我一直在读到下面是一个反模式: var a = new Array("a", "b", "c"); 下面的不是: var a
我正在研究著名的 SQLzoos 的第一个问题,并且正在研究 using Null 部分:http://sqlzoo.net/wiki/Using_Null 问题是: List the teacher
在 Java 中,有 Graphics2D.fillRect(x, y, width, height) 函数。在我的程序中,我正在寻找类似但完全相反的东西。 我需要填充屏幕上的所有内容,除了这个特定的
我正在尝试实现一种算法,从一组 n 个元素中获取 k 个元素的所有组合,其中两个连续组合之间的差异被最大化(类似反向格雷码)。换句话说,应该对组合进行排序以避免元素连续出现两次,这样就不会不必要地区分
来自 http://ark.intel.com我可以找到支持它的处理器。但是如何以编程方式检测它呢? (C++,C#)。 对于 Intel 的芯片组,我发现 FVEC2(特征向量寄存器)用于检测是否启
我正在阅读 O'Reilly 的“Android 编程”一书,我正在努力研究从第 99 页开始的“覆盖和回调”部分。他们将此作为优秀代码的示例: public class MyModel {
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 1
搜索示例 搜索 123,网页地址为:https://www.virustotal.com/gui/search/123/comments 请求接口 GET /ui/search?limit=
程序员经常会注意到他在几个地方有一些非常相似的代码。假设这里有类似代码的实例。 (为了清晰起见,这是一个玩具示例。在野外,这种反模式通常不会出现在如此简单的代码中) function showLogi
我使用了 highcharts 库中的基本折线图,但我认为线条不够平滑。 有可能改进吗? 我的代码: chart: { type:'line',
创建 JavaFX 场景时,我传入 SceneAntialiasing.BALANCED 作为参数,但在我的笔记本电脑上它给了我这个警告: WARNING: System can't support
我是一名优秀的程序员,十分优秀!