何时循环遍历列表会抛出Null Reference Exception?

时间:2017-05-19 09:26:10

标签: c# exception exception-handling nullreferenceexception

之前我没有做过很多异常处理(相当新的编码),我不确定我需要捕获异常的位置以及应该没有异常捕获的位置。

具体来说,我想知道迭代列表。我是否应该在遍历列表的每个地方捕获Null引用异常?

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

所以,我在想。我如何知道何时应该通过列表循环以及何时不需要捕获Null引用异常?

1 个答案:

答案 0 :(得分:4)

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

如果您的容器本身有null,您应该在循环之前使用简单的if进行检查。不过,最好不要让它成为null,这可能是一种好习惯。在这种情况下提前失败,如果您获得的容器不是ArgumentNullException而不是试图接受 {的事实,则抛出null {1}}。