异常会影响应用程序的性能吗?

时间:2012-06-15 10:22:20

标签: c# exception nullreferenceexception

我有一个C#应用程序..我不断得到一个空引用异常..我设法捕获这个异常并记录它。但我怀疑这个异常是否会影响我的应用程序的性能..请注意我是我没有试图避免异常,而是需要知道如果持续触发此异常会影响我的应用程序的性能。

4 个答案:

答案 0 :(得分:4)

如果您收到NullReferenceException,则应该修复而不是捕获它。如果代码以无法修复的方式出现(例如,破坏的第三方库),则应该只捕获它。 NullReferenceException始终表示编程错误某处

至于表现 - 它取决于你所说的“连续”。如果在没有真正错误的情况下抛出异常,例外可能会非常昂贵 - 如果使用得当,它们就会很好。例如,你每秒看到多少人?请注意,在调试器中运行时,异常通常比未附加调试器时要昂贵得多。

与以往一样,当您担心性能时,您应该测试性能,这样您就可以使用硬数据做出决策。

答案 1 :(得分:0)

这取决于您处理异常的位置以及它们发生的频率。关于例外和性能的CodeProject上有一篇很好的文章,我建议你阅读it

答案 2 :(得分:0)

是的,它影响它取决于它的频率。

有关详细信息,请参阅Link,它也可能对您有所帮助Link

答案 3 :(得分:0)

异常被设计为在不抛出性能时将性能降至最低:添加try / catch块对应用程序性能的影响非常有限。 因此,我建议添加尽可能多的try / catch块来捕获正确级别的任何异常。

然而,抛出和捕获异常可能非常昂贵。应用程序必须切换上下文,处理使用块中的任何元素......这就是我同意@Ramhound的原因:你应该修复异常而不是捕获它。