之前我没有做过很多异常处理(相当新的编码),我不确定我需要捕获异常的位置以及应该没有异常捕获的位置。
具体来说,我想知道迭代列表。我是否应该在遍历列表的每个地方捕获Null引用异常?
我认为答案是否定的,因为我有单元测试,测试代码循环遍历列表,并且当列表没有元素时它们不会抛出异常。
所以,我在想。我如何知道何时应该通过列表循环以及何时不需要捕获Null引用异常?
答案 0 :(得分:4)
如果您的列表为空,则不会有NullReferenceException
。你可以很好地迭代空容器。
如果您的容器本身有null
,您应该在循环之前使用简单的if
进行检查。不过,最好不要让它成为null
,这可能是一种好习惯。在这种情况下提前失败,如果您获得的容器不是ArgumentNullException
而不是试图接受 {的事实,则抛出null
{1}}。