我有一些这样的代码
try
{
result.FirstName = nodes[myIdx].Attributes["ows_FirstName"].Value;
} catch { }
现在,在调用此调用之前,我不知道我正在寻找的属性是否存在(Good ol sharepoint)。
因此,我可以编写要创建的代码的唯一线性方式就是这样。
try
{
result.FirstName = nodes[myIdx].Attributes["ows_FirstName"].Value;
} catch { }
try
{
result.LastName = nodes[myIdx].Attributes["ows_LastName"].Value;
} catch { }
....
现在我对这段代码的 catch 部分没有用处,最终得到了大量完全多余的行。
为什么我不能做
try { result.FirstName = nodes[myIdx].Attributes["ows_FirstName"].Value; }
那么为什么我们要显式地强制声明一个 catch 块,即使它没有被处理呢?我确信有一个很好的理由,但无法解决。
编辑:在每个人开始对我发火之前,吞下一个例外是不好的,等等等等。我们(和我)都知道这些论点,但在这个(以及许多)现实世界的场景中,这个异常并没有什么特别之处,我也无能为力(或需要做)来修复这种行为。