c# - argument null异常和invalid异常怎么写?

标签 c# unit-testing testing exception nunit

我正在尝试为 Register CommandHandler 编写一个类

public virtual void RegisterCommandHandler<T>(string messageType, Action<T, MetaData> handler)
    {
        _handlers.Add(messageType, (command, metadata) => handler((T)command, metadata));

    }

我想处理两个异常:

  1. 处理空异常
  2. 无效处理程序异常

我试着按照下面的方式去做,但是没有成功

 if (string.IsNullOrEmpty(handler.ToString())) 
       throw new ArgumentNullException("NullException","null value");

请帮我写验证 谢谢!

最佳答案

您应该直接检查处理程序是否为空。

if (handler == null)
    throw new ArgumentNullException("handler cannot be null", "handler");

您现在遇到问题的原因是如果 handler 为 null,handler.ToString() 将抛出 NullReferenceException。

关于c# - argument null异常和invalid异常怎么写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20320872/

相关文章:

c# - Resharper 在 if 语句旁边移动顶部大括号。怎么上新线?

c# - InlineAutoDataAttribute 但对于 NUnit(对于 TestCase 和 TestCaseSource)

java - WebDriver 打印错误的条件语句

python - 在 pytest 中,如何暂时禁用类方法中的捕获?

c# - 检查 null 线程安全吗?

c# - NetFramework 应用程序在同一解决方案中引用 NetFramework 库,在另一个解决方案中引用 NetStandard 库。 : could not load file or assembly

java - Mockito Spring Boot 给出空指针异常

ios - 如何使用 Xcode 6 在真实的 iPhone 上测试 App?

c# - 类型字符串是预期的,但收到了一个值为 0 的整数类型

python - 在 python 中将参数从 Suite 传递给 TestCase