0

Try-Catch在程序中使用块如何C#/Java影响它们的执行速度?
我正在编写数据库应用程序的开发过程(使用 Visual C#),并且已经在几乎所有可能导致错误的方法中放置了一个 try-catch 块,
但很好奇这样做是否会降低我的执行速度程序也是?

我知道还有其他因素也会影响速度,但这会减慢程序的速度吗?

4

6 回答 6

3

通常只要没有抛出异常,它就不会对代码产生影响。当抛出异常时,它通常会减慢应用程序的速度,因为这是一项代价高昂的操作。然而,这里有一个非常有趣的讨论,你应该阅读一下。

于 2014-01-03T05:11:35.683 回答
0

仅当您的程序因意外输入而出错时,才会执行 try catch 块。否则它只是用来设置标志。所以它不会影响执行时间或速度。

于 2014-01-03T05:13:20.370 回答
0

它会影响您何时未处理的异常和未处理的异常导致性能低下
检查这可能是它有用的 Tyr/Catch

例如,您在组合框 Selected index change 事件上放置了一些代码

 private void cmbMedium_SelectedIndexChanged(object sender, EventArgs e)
        {
           //Some Code
        }  

并且您在表单加载事件的组合框中设置数据源或添加项目,而不是设置数据源或添加项目 cmbMedium_SelectedIndexChanged事件触发器
此时有些cmbMedium_SelectedIndexChanged人像这样 放置未处理的异常

private void cmbMedium_SelectedIndexChanged(object sender, EventArgs e)
{
  Try
     {
       //Some Code
     }
  catach(Exception ex)
     {}
}  

比这种类型的未处理异常会导致性能低下

于 2014-01-03T05:16:33.527 回答
0

由于您的应用程序是数据库驱动的,我想说数据库调用所花费的时间很可能会使 try/catch 块引入的任何性能损失相形见绌。如果 try/catch 是适合您尝试做的事情的结构,那么一定要这样做。

于 2014-01-03T05:08:35.917 回答
0

不确定Java,但在C#中,成本极低,但是,我质疑这样做的逻辑。我更喜欢尤达方法。做或不做。没有尝试。

你会让 catch 块做什么?如果您对日志记录感兴趣,可以使用异常过滤器(VB.NET 中的 CATCH WHEN)在异常首次发生时捕获有关异常的信息,并使用反射记录各种数据。

于 2014-01-03T05:11:41.997 回答
-1

是的,Try/Catch 会影响你的表现。有关更多信息,请查看链接。

于 2014-01-03T05:11:51.857 回答