- 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/
我想知道编写异常收件箱和发件箱是否会改变特定程序的行为,例如 抛出 MyException(); 和 抛出(我的异常()); 我的代码: #include #include using names
在 Ruby 中,是否可以拯救除指定异常之外的所有异常? 最佳答案 begin rescue MyException raise #to reraise the same exception wi
我需要清除这个警告: try { doSomething() } catch (AmbiguousMatchException MyException) { doSomethingEl
在我的类里面,我正在对自定义数据进行验证。许多条件适用。一旦失败,我想抛出一个特定的 MyException。抛出此 MyException 需要许多通用参数和一个自定义参数(基于实际失败)。因此,实
我正在捕获一个 Exception 并尝试检查它的 getCause(),如果 cause 是类型 MyException,在另一个库中定义。 我在尝试检查 e.getCause() instance
目标:如果存在 AdmisSkipException(自定义异常),我希望作业跳过记录并继续处理下一行。如果有任何其他异常,我希望工作停止。 这是我到目前为止所拥有的: session :
我已经编写了自己的异常 (MyException) 并实现了日志记录和以 Toast 形式显示错误消息。这是它的缩写... public class MyException extends Excep
class DeviceError(Exception): def __init__(self,errno,msg): self.args = (errno, msg)
我正在考虑异常处理和单元测试的最佳实践,因为我们正试图获得一些代码最佳实践。 我们公司 wiki 上的一篇关于最佳实践的文章指出“不要使用 try/catch,但使用 Junit4 @Test(exp
我是 swig 的新手,使用 swig 将 c++ 代码集成到 Perl,我有像这样的 c++ 函数void s() 抛出 MyException。我如何集成可以在 swig 接口(interface
我理解这个错误的想法。但我想我不明白这是如何在调用堆栈中工作的。 文件 Main.java: public static void main(String[] args) { try {
我是一名优秀的程序员,十分优秀!