什么时候遍历列表会抛出 Null Reference Exception?

When does looping through a list throw a Null Reference Exception?

我之前并没有真正做过多少异常处理(对编码还很陌生),我不确定我需要在哪里捕获异常以及在哪里不应该捕获异常。

具体来说,我想知道如何遍历列表。我是否应该在遍历列表的所有地方捕获空引用异常?

我想答案是否定的,因为我有单元测试,它测试循环遍历列表的代码,并且当列表没有元素时它们不会抛出异常。

所以,我想知道。我怎么知道什么时候应该捕捉空引用异常来循环遍历列表,什么时候不需要?

如果您的列表为空,则不会有 NullReferenceException。您可以很好地迭代空容器。

如果您的容器本身有可能是 null,您应该在循环之前用简单的 if 检查一下。不过,一开始不要让它变成 null 可能是一个好习惯。在这种情况下尽早失败并抛出一个 ArgumentNullException 如果你得到一个你期望不是 null 的容器,而不是试图接受它 是 [=22] 的事实=] null.