Try-Catch
在程序中使用块如何C#/Java
影响它们的执行速度?
我正在编写数据库应用程序的开发过程(使用 Visual C#),并且已经在几乎所有可能导致错误的方法中放置了一个 try-catch 块,
但很好奇这样做是否会降低我的执行速度程序也是?
我知道还有其他因素也会影响速度,但这会减慢程序的速度吗?
Try-Catch
在程序中使用块如何C#/Java
影响它们的执行速度?
我正在编写数据库应用程序的开发过程(使用 Visual C#),并且已经在几乎所有可能导致错误的方法中放置了一个 try-catch 块,
但很好奇这样做是否会降低我的执行速度程序也是?
我知道还有其他因素也会影响速度,但这会减慢程序的速度吗?
通常只要没有抛出异常,它就不会对代码产生影响。当抛出异常时,它通常会减慢应用程序的速度,因为这是一项代价高昂的操作。然而,这里有一个非常有趣的讨论,你应该阅读一下。
仅当您的程序因意外输入而出错时,才会执行 try catch 块。否则它只是用来设置标志。所以它不会影响执行时间或速度。
它会影响您何时未处理的异常和未处理的异常导致性能低下
检查这可能是它有用的
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)
{}
}
比这种类型的未处理异常会导致性能低下
由于您的应用程序是数据库驱动的,我想说数据库调用所花费的时间很可能会使 try/catch 块引入的任何性能损失相形见绌。如果 try/catch 是适合您尝试做的事情的结构,那么一定要这样做。
不确定Java,但在C#中,成本极低,但是,我质疑这样做的逻辑。我更喜欢尤达方法。做或不做。没有尝试。
你会让 catch 块做什么?如果您对日志记录感兴趣,可以使用异常过滤器(VB.NET 中的 CATCH WHEN)在异常首次发生时捕获有关异常的信息,并使用反射记录各种数据。
是的,Try/Catch 会影响你的表现。有关更多信息,请查看此链接。