什么时候遍历列表会抛出 Null Reference Exception?
When does looping through a list throw a Null Reference Exception?
我之前并没有真正做过多少异常处理(对编码还很陌生),我不确定我需要在哪里捕获异常以及在哪里不应该捕获异常。
具体来说,我想知道如何遍历列表。我是否应该在遍历列表的所有地方捕获空引用异常?
我想答案是否定的,因为我有单元测试,它测试循环遍历列表的代码,并且当列表没有元素时它们不会抛出异常。
所以,我想知道。我怎么知道什么时候应该捕捉空引用异常来循环遍历列表,什么时候不需要?
如果您的列表为空,则不会有 NullReferenceException
。您可以很好地迭代空容器。
如果您的容器本身有可能是 null
,您应该在循环之前用简单的 if
检查一下。不过,一开始不要让它变成 null
可能是一个好习惯。在这种情况下尽早失败并抛出一个 ArgumentNullException
如果你得到一个你期望不是 null
的容器,而不是试图接受它 是 [=22] 的事实=] null
.
我之前并没有真正做过多少异常处理(对编码还很陌生),我不确定我需要在哪里捕获异常以及在哪里不应该捕获异常。
具体来说,我想知道如何遍历列表。我是否应该在遍历列表的所有地方捕获空引用异常?
我想答案是否定的,因为我有单元测试,它测试循环遍历列表的代码,并且当列表没有元素时它们不会抛出异常。
所以,我想知道。我怎么知道什么时候应该捕捉空引用异常来循环遍历列表,什么时候不需要?
如果您的列表为空,则不会有 NullReferenceException
。您可以很好地迭代空容器。
如果您的容器本身有可能是 null
,您应该在循环之前用简单的 if
检查一下。不过,一开始不要让它变成 null
可能是一个好习惯。在这种情况下尽早失败并抛出一个 ArgumentNullException
如果你得到一个你期望不是 null
的容器,而不是试图接受它 是 [=22] 的事实=] null
.