C# 添加try-catch块后接收超时

C# 添加try-catch块后接收超时,c#,sql,sql-server,timeout,try-catch,C#,Sql,Sql Server,Timeout,Try Catch,我编写了一些代码来处理大约6个包含大量行的表。我花了大约4分钟的时间完成这项工作,但它正确地完成了。后来,当我添加更多的try-catch块时,我开始接收超时。有没有可能太多的try-catch块导致超时?如果不是的话,可能出了什么问题 我首先通过OleDbDataAdapter从*.mdb读取数据,然后读取/写入/更新MS SQL。取决于引发异常的频率。实际上,try-catch-bloc会在抛出异常时显著降低代码的速度。在我的英特尔i5-4440上,调试时每个catch块最多需要30毫秒。因

我编写了一些代码来处理大约6个包含大量行的表。我花了大约4分钟的时间完成这项工作,但它正确地完成了。后来,当我添加更多的try-catch块时,我开始接收超时。有没有可能太多的try-catch块导致超时?如果不是的话,可能出了什么问题


我首先通过OleDbDataAdapter从*.mdb读取数据,然后读取/写入/更新MS SQL。

取决于引发异常的频率。实际上,try-catch-bloc会在抛出异常时显著降低代码的速度。在我的英特尔i5-4440上,调试时每个catch块最多需要30毫秒。因此,一些1000次迭代的循环,抛出和捕获异常,需要30秒才能完成

简单证明代码示例

[Test]
public void Test()
{
    var timer = new Stopwatch();

    timer.Start();
    for (int i = 0; i < 1000; i++)
    {
        try
        {
            throw new Exception();
        }
        catch (Exception)
        {
            // do nothing
        }
    }
    timer.Stop();

    Console.WriteLine(timer.ElapsedTicks);

    timer.Reset();
    timer.Start();
    for (int i = 0; i < 1000; i++)
    {
        try
        {
            // do nothing
        }
        catch (Exception)
        {
            // do nothing
        }
    }
    timer.Stop();

    Console.WriteLine(timer.ElapsedTicks);
}

我写了一些代码
把代码放在这里哪个数据库管理系统?(这是特定于产品的行为…@AmeyaDeshpande它有很多,超过1000行。try/catch块不会固有地导致问题。您无意中更改了代码的逻辑流。没有人能在没有看到代码的情况下帮助你。请阅读以下内容:我怀疑这些行中有什么东西是罪魁祸首。我将在另一台计算机和数据库上试用。
19119
13