ArgumentException对于组合参数
问题描述:
我有一个方法需要三个参数(3D点)。如果点是共线的,我想抛出异常。我明显的例外是ArgumentException
,但最好的做法是在构造函数中包含param名称。在我的情况下,这是所有三个参数的组合,这是无效的输入 - 所以最好的做法是不行的(我认为我的代码分析会像地狱一样呻吟)。ArgumentException对于组合参数
所以我在这里使用ArgumentException
或类似InvalidOperationException
的东西,因为有多个参数导致问题?
答
我觉得两者都很好。
如果您选择使用ArgumentException
,则可以使用任何一个参数的名称。我个人会使用最后的参数的名称。毕竟,如果点是共线的,你只需要改变一个,然后所有参数都可以。 :-)
+0
我确实编写了一个帮助程序,用于检查和报告即使是复杂的规则,而不必将字符串参数的名称写入:http://www.felicepollano.com/2011/12/17/ASingleFileArgumentVerificationLibrary.aspx – 2011-12-25 10:34:16
答
尝试创建自己的异常类型,派生自ArgumentException
。在这个类中你可以存储所有三个参数。
IOE值得*重*考虑。客户端代码要求它执行无效的操作。毫无疑问,我会假设。 – 2011-04-04 17:38:19
[per MSDN](http://msdn.microsoft.com/en-us/library/system.invalidoperationexception.aspx),“InvalidOperationException用于调用方法失败的原因不是由无效参数引起的情况“ – 2013-10-09 00:50:50