当参数不符合您的预期时,您是否应该始终检查参数并在 .NET 中引发异常?例如。空对象或空字符串?
我开始这样做,但后来认为如果在每个方法上都这样做,这会使我的代码膨胀很多。我应该检查私有(private)和公共(public)方法的参数吗?
我最终抛出了很多 ArgumentNullException("name") 异常,即使处理异常的代码实际上不能以编程方式做任何不同的事情,因为不能保证“name”将来不会改变。
我认为此信息在查看充满异常信息的日志时有用吗?
总是“做最坏的打算”是最好的做法吗?
最佳答案
我的两分钱:您所有的公共(public)方法都应始终检查传入参数的有效性。这通常称为“按契约(Contract)编程”,是快速捕获错误并避免通过许多人认为的私有(private)函数传播错误的好方法(包括我自己)不应该直接进行单元测试。至于抛出异常,如果你的函数或程序本身不能纠正错误,它应该抛出异常,因为它已被抛出到无效状态。
关于.net - 始终检查参数并抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/220775/