如果验证方法应返回验证结果,为什么有ArgumentException类?

pen*_*ake 2 .net c# validation exception argumentexception

我有点困惑.

MSDN对ArgumentException的说法是:

"当提供给方法的其中一个参数无效时抛出的异常."

因此,如果传递给我的方法的参数无效,我会抛出异常.

但我也发现建议返回boolean加一个字符串. - 而不是抛出异常.

所以,

问题:当验证方法参数时,以及当参数无效时,验证方法应该何时抛出异常而何时不应该抛出异常?

Han*_*ing 9

如果你有一个方法,其目的是验证它的参数(例如:这是一个有效的用户名/密码组合),通过所有方法返回一个bool(false =无效)加上一个原因.不要为预期的情况抛出异常(如果没有预期,为什么要验证?)

如果你有一个"进程"方法,那么情况就不同了:你必须有有效的参数,所以当它们无效时抛出异常(说明问题)是合理的.