.net - 始终检查参数并抛出异常

标签 .net exception

当参数不符合您的预期时,您是否应该始终检查参数并在 .NET 中引发异常?例如。空对象或空字符串?

我开始这样做,但后来认为如果在每个方法上都这样做,这会使我的代码膨胀很多。我应该检查私有(private)和公共(public)方法的参数吗?

我最终抛出了很多 ArgumentNullException("name") 异常,即使处理异常的代码实际上不能以编程方式做任何不同的事情,因为不能保证“name”将来不会改变。

我认为此信息在查看充满异常信息的日志时有用吗?

总是“做最坏的打算”是最好的做法吗?

最佳答案

我的两分钱:您所有的公共(public)方法都应始终检查传入参数的有效性。这通常称为“按契约(Contract)编程”,是快速捕获错误并避免通过许多人认为的私有(private)函数传播错误的好方法(包括我自己)不应该直接进行单元测试。至于抛出异常,如果你的函数或程序本身不能纠正错误,它应该抛出异常,因为它已被抛出到无效状态。

关于.net - 始终检查参数并抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/220775/

相关文章:

java - 如何知道抛出了哪个异常

python - Gevent greenlet 向父级冒泡异常

java - CompletableFuture 吞下异常?

php - 捕获 PDO fatal error 并抛出异常

javascript - 如何捕获内部异常?

.net - 如何从 wcf 的响应中删除 null DataMember 属性

c# - 本地主机和实时站点的 Request.URL

c# - 为什么我不能在扩展 List 的类中调用 OrderBy?

c# - ASP.NET MVC DropDownListFor 在回发时返回 null

c# - 为什么当我单击滚动条时控制台会暂停我的代码