答案 0 :(得分:1)
您在方法的第5行检查vehicleDetail
是否为null
,这意味着在某些情况下它可能为空。 SonarQube警告您,在这些情况下,当您将NullReferenceException
添加到命令参数时,您将获得AgentCode
。
如果预计vehicleDetail
确实是null
,那么SonarQube问题实际上是指向代码中的错误,您应该将vehicleDetail
的所有成员访问权限包含在if (vehicleDetail != null)
中}。
如果vehicleDetail
不应为null,则应从方法开头的if
语句中删除空检查,并添加抛出ArgumentNullException
的正常参数检查。
答案 1 :(得分:0)
您的代码无法保证参数不是null
。如果是,你的程序就崩溃了。
你如何处理这取决于你。检查参数并抛出ArgumentNullException
如果它为空?如果它为空,则假设一个默认值?如果它是空的,不使用它的任何属性?由你来决定。
消息告诉你,你必须决定在这种情况下做什么,而不仅仅是手动它并假设它永远不会发生。