在try,catch块之外运行代码是否有任何性能优势?

Geo*_*Geo 1 .net c# try-catch

我很想知道我是否应该最小化try/catch块中的代码,否则它确实无关紧要.

   public bool ObjectExists(string stringTest, string againSomethingElse)
    {
        if(true) {}
        else {} //Code here is better/worst/same
        try
        {
            //Versus code inside try/catch block

        }
        catch (Exception)
        {

            throw;
        }
    }
Run Code Online (Sandbox Code Playgroud)

rec*_*ive 10

在.net中,如果实际抛出异常,则try/catch只会产生开销.所以不要过分担心代码内部的性能影响try.只是不要将异常作为一种流控制形式抛出.


Eri*_*ert 6

这是解决这个问题的正确方法.

首先编写代码,以便异常处理是正确的.始终保持正确性.

然后设定合理的,以客户为中心的绩效目标.然后测试你的程序.然后,如果您没有达到目标,请使用分析器找到最慢的东西.如果一些奇怪的巧合最慢的事情恰好是你正确的异常处理,那么你才应该考虑异常处理的性能成本是什么.

  • 好吧,*是的*. - (2认同)