如何解释Vb.Net Linq中的异常

时间:2015-10-31 18:58:41

标签: .net vb.net linq exception

我不确定Linq如果试图对空结果执行语句会如何反应。我在文档中找到了FirstOrDefault()方法,但是如果结果为空,则会出现OrderByDescending(),这会导致异常发生? docs表示First()会抛出异常,那么其他的呢?以下代码是否可以免除例外情况?

def test_2d_parse_array():
    """
    """
        A = [[0,1,1], [1,0,1], [1,1,0]]
    r = c = 0

    for r in xrange(3):
      for c in xrange(3):
        if A[r][c] < 0:
          return 'negval'

    return 'positive'
if __name__ == '__main__':
 test_2d_parse_array()

2 个答案:

答案 0 :(得分:2)

通常,文档会调出任何异常。对空序列进行排序不是问题,因为总是对空序列进行排序。不会发生任何例外。你很安全。

像API设计师一样思考:为什么要让OrderByWhere抛出空序列?没有理由。

答案 1 :(得分:2)

GetFiles()函数可能会抛出异常,因此代码在异常情况下是不安全的。

但是,如果您的问题严格依赖于GetFiles()函数之外的LINQ代码,则它是安全的,因为GetFiles()或者返回文件列表,如果没有找到文件则返回空列表。在空列表的情况下,您拥有的LINQ函数将起作用而不会抛出异常。

来自MSDN DirectoryInfo.GetFiles Method

  

如果DirectoryInfo中没有文件,则此方法返回一个空数组。