今天调试程序总是报一个异常:

值不能为 null。
参数名: source

异常详细信息: System.ArgumentNullException: 值不能为 null。
参数名: source

通过断点发现是这段代码错误,发生这个异常通常是方法中某个参数为空了,而我的方法中没有一个名为source的参数啊,后来发现是 processors 为 NULL ,调用 Select 方法当然会出错。

processors = taskWfService.IdentifyNextWorkflowProcessors(CurrentUserId, currentTaskWorkflow.ReportTaskId);
var taskProcessorList = processors.Select(item => new TaskWorkflowProcessor { Processor = item }).ToList();

但是根据我们平时的经验,一个为NULL的对象,调用它的方法时,应该抛出 NullReferenceException 未将对象设置到对象的实例 异常啊?比如我们调用 ToString() 方法

var theType = processors.ToString(); //Thrown a NullReferenceException

其实问题那就出在 Select() 方法,在 Select 上按 F12 查看定义

public static IEnumerable<TResult> Select<TSource, TResult>(this IEnumerable<TSource> source, Func<TSource, TResult> selector);

这是 System.Linq 下的扩展方法(.net 3.5之前是没有的),除了 Select 还有很多平时常见的,比如 Where, Any, OrderBy, SelectMany, Take 等

这个方法内部判断传入的参数 source 为 NULL,就抛出一个 ArgumentNullException。

我觉得如果扩展方法中的 this 参数为 NULL,是否抛出一个 NullReferenceException 更为合适呢?至少排除错误时更容易,拙见

值不能为 null。 参数名: source的更多相关文章

  1. 值不能为null.参数名: viewInfo,如何解决

    有蓝队网络服务器租用客户反映在一台服务器上使用数据库管理工具时弹出了如下错误 :值不能为null.参数名: viewInfo (Microsoft.SqlServer.Management.SqlSt ...

  2. c# 异常:值不能为 null。 参数名: source

    异常详细信息: System.ArgumentNullException: 值不能为 null.参数名: source 其实问题那就出在 Select() 方法,在 Select 上按 F12 查看定 ...

  3. MSSQL2008 R2 数据库展开报错:值不能为空 参数名:viewInfo

    打开数据库时报错,提示应用程序组件中发生了无法处理的异常.如果单击“继续”,应用程序将忽略此错误并尝试继续. 针对此类问题的解决办法是:将路径C:\Documentsand Settings\Admi ...

  4. Web Performance Test : 为Request的Post参数名添加XPath支持

    问题描述 本文的标题看起来有些含糊其辞,这里我需要把问题阐述得更加清楚.这是我们使用VSTS进行Web Performance Test时,Asp.net造成的特定问题(也许其他开发工具或插件也会造成 ...

  5. EntityFramework:值不能为 null。参数名: entitySet 异常解决方案

    昨天EF莫名其妙的,掉所有接口访问都出现如下错误:百度,Google了半天,倒是有很多人都遇到了这个问题,但都没有一个解决方案,或者解决方案无效.通过层层排除,终于找到问题的所在.记录下来,给以后再遇 ...

  6. 使用水晶报表更新后出现“值不能为 null。 参数名: inputString”

    简单记录一下: 如果更新完水晶报表相关页面可能在原来页面刷新会出现错误:"值不能为 null. 参数名: inputString",如图:

  7. 值不能为 null 或为空。参数名: linkText

    “/”应用程序中的服务器错误. 值不能为 null 或为空.参数名: linkText 说明: 执行当前 Web 请求期间,出现未经处理的异常.请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的 ...

  8. iBatis System.ArgumentNullException : 值不能为 null。 参数名: path2

    System.ArgumentNullException : 值不能为 null. 参数名: path2 在app.config 或 web.config 中加上配置就可以了 <appSetti ...

  9. Value cannot be null or empty. 参数名: contentPath

    代码:<img src="@Url.Content(item.ThumbPath)" width="160" height="250" ...

随机推荐

  1. zabbix实现企业微信监控报警

    一.zabbix基本说明 简介:zabbix基于Web界面的分布式系统监控的企业级开源软件.可以监控各种系统与设备,网络参数,保证服务器设备安全运营:提供灵活的通知机制.如果检测到的指标不达标,就实现 ...

  2. Linux运维之shell脚本

    一.bash漏洞 1)bash漏洞 bash漏洞是控制Linux计算机命令提示符的软件中存在的漏洞. bash是一个为GNU计划编写的Unix shell.它的名字是一系列缩写:Bourne-Agai ...

  3. AOP (切点表达式讲解)

    Spring EL表达式:: 1.execution 表达式 语法格式: execution(返回类型.包名.类名.方法名(参数表)) exection(*.com.xxx.AService.*(.. ...

  4. Spring mvc项目,使用jetty插件和tomcat路径相差一个项目名

    pom.xml: jetty 插件配置: <plugin> <groupId>org.mortbay.jetty</groupId> <artifactId& ...

  5. IOS tableView的一些问题总结

      1.与用户的交互的开启和关闭 tableView.userInteractionEnabled = NO; 2.TableView的Group样式中,默认的每个section都有sectionHe ...

  6. 2018.11.07 bzoj1965: [Ahoi2005]SHUFFLE 洗牌(快速幂+exgcd)

    传送门 发现自己的程序跑得好慢啊233. 管他的反正AC了 先手玩样例找了一波规律发现题目要求的就是a∗2m≡l(modn+1)a*2^m\equiv l \pmod {n+1}a∗2m≡l(modn ...

  7. MPA(Macro Prudential Assessment)即宏观审慎评估体系

    MPA(Macro Prudential Assessment)即宏观审慎评估体系.2015年12月29日,央行发布公告称,为进一步完善宏观审慎政策框架,更加有效地防范系统性风险,发挥逆周期调节作用, ...

  8. struts上传文件报argument type mismatch错误

    报错如下图所示: 报错原因:把String 强行转换成FormFile,所以才会抛出argument type mismatch.经查询:表单(html:form)中enctype="mul ...

  9. php 爬虫简单示例

    <?php error_reporting(E_ALL^E_NOTICE^E_WARNING); $url = "http://cp.360.cn/ssccq/?menu&r_ ...

  10. keras model.compile(loss='目标函数 ', optimizer='adam', metrics=['accuracy'])

    深度学习笔记 目标函数的总结与整理   目标函数,或称损失函数,是网络中的性能函数,也是编译一个模型必须的两个参数之一.由于损失函数种类众多,下面以keras官网手册的为例. 在官方keras.io里 ...