相关疑难解决方法(0)

当没有抛出异常时,try/catch块是否会损害性能?

在与Microsoft员工进行代码审查期间,我们在try{}块中遇到了大量代码.她和IT代表建议这可能会影响代码的性能.事实上,他们建议大多数代码应该在try/catch块之外,并且只应该检查重要的部分.微软员工补充说,即将发布的白皮书警告不要使用不正确的try/catch块.

我环顾四周,发现它可以影响优化,但它似乎只适用于范围之间共享变量.

我不是在询问代码的可维护性,甚至不是在处理正确的异常(有问题的代码需要重新分解,毫无疑问).我也没有提到使用流量控制的异常,这在大多数情况下显然是错误的.这些都是重要的问题(有些更重要),但不是重点.

如果抛出异常,try/catch块如何影响性能?

c# performance try-catch

261
推荐指数
12
解决办法
7万
查看次数

试着抓住表现

MSDN上的这篇文章指出,您可以根据需要使用尽可能多的try catch块,并且不会产生任何性能成本,因为不会引发任何实际异常.
因为我总是认为即使没有抛出异常,try-catch总是会受到很小的性能影响,所以我做了一点测试.

 private void TryCatchPerformance()
        {
            int iterations = 100000000;

            Stopwatch stopwatch = Stopwatch.StartNew();
            int c = 0;
            for (int i = 0; i < iterations; i++)
            {
                try
                {
                   // c += i * (2 * (int)Math.Floor((double)i));
                    c += i * 2;
                }
                catch (Exception ex)
                {
                    throw;
                }
            }
            stopwatch.Stop();
            WriteLog(String.Format("With try catch: {0}", stopwatch.ElapsedMilliseconds));

            Stopwatch stopwatch2 = Stopwatch.StartNew();
            int c2 = 0;
            for (int i = 0; i < iterations; i++)
            {
              //  c2 …
Run Code Online (Sandbox Code Playgroud)

c# performance

25
推荐指数
4
解决办法
2万
查看次数

if-condition与异常处理程序

我有一个问题:

"你更喜欢什么,例外处理或条件?"

面试.我的回答是异常处理程序仅在特殊情况下(例如文件写入时的磁盘权限错误)首选.面试官似乎期待着其他一些答案.什么是正确的答案?

编辑:当if条件更合适时,常用异常处理的任何特定示例?

c#

19
推荐指数
2
解决办法
2280
查看次数

标签 统计

c# ×3

performance ×2

try-catch ×1