是否尝试包含多余的代码?

时间:2011-11-11 14:07:44

标签: c#

我正在查看一些我正在重构的代码并注意到try ... catch代码包含了很多代码,而不是所有会抛出“正常”异常的代码,即代码根本不会抛出或者如果它确实是完全致命的例外,如内存异常。

我现在想知道的是,在try语句中包含太多是否会导致性能问题?

所以我看到这样的事情:

try
{
    // Won't throw (I think that is the case anyway!)
    if (e.Error == null)
    {
        return;
    }

    // Only fatal exceptions
    myClass c = new myClass();

    // Now carry out the code that could cause catchable exception
}
catch
{
}

2 个答案:

答案 0 :(得分:3)

除非真的抛出异常,否则try-catch不会给你带来可衡量的性能影响。

答案 1 :(得分:3)

效果问题?真的,没有什么值得注意的。然而,从错误搜寻的角度来看,它可能是一场噩梦。当你在try / catch中包含100行代码时,更难以弄清楚这100行中的哪一行引发了异常。尽管存在所有逻辑(或者实际上是因为有缺陷的人类逻辑),“永远不应该抛出异常”的代码通常会抛出最多。

我说,如果你的代码永远不会抛出异常,那么通过不将它包装在try / catch块中来备份它。否则,只需尝试/捕捉Main方法并完成它。