C#SonarQube抱怨Null指针不应该被取消引用

时间:2018-04-25 09:47:42

标签: c# sonarqube code-analysis

我在SonarQube中遇到问题,当我试图直接从模型属性访问值时,它在声纳qube中显示错误。请建议。

enter image description here

enter image description here

2 个答案:

答案 0 :(得分:1)

您在方法的第5行检查vehicleDetail是否为null,这意味着在某些情况下它可能为空。 SonarQube警告您,在这些情况下,当您将NullReferenceException添加到命令参数时,您将获得AgentCode

如果预计vehicleDetail确实是null,那么SonarQube问题实际上是指向代码中的错误,您应该将vehicleDetail的所有成员访问权限包含在if (vehicleDetail != null)中}。

如果vehicleDetail不应为null,则应从方法开头的if语句中删除空检查,并添加抛出ArgumentNullException的正常参数检查。

答案 1 :(得分:0)

您的代码无法保证参数不是null。如果是,你的程序就崩溃了。

你如何处理这取决于你。检查参数并抛出ArgumentNullException如果它为空?如果它为空,则假设一个默认值?如果它是空的,不使用它的任何属性?由你来决定。

消息告诉你,你必须决定在这种情况下做什么,而不仅仅是手动它并假设它永远不会发生。