2012-06-15 91 views
-1

我有一个C#应用程序..我不断得到一个空引用异常..我设法捕捉这个异常并记录它..但我怀疑这个异常是否会影响我的应用程序的性能..请注意,我不是试图避免异常,我需要知道如果这个异常影响我的应用程序的性能,如果它不断被解雇。异常会影响应用程序的性能吗?

+2

如果您收到空例外,这意味着您的代码需要修复。 –

回答

4

如果你得到一个NullReferenceException,你应该修复它,而不是追赶它。只有在代码中出现不能修复(例如,第三方库已损坏)的情况时,才应该捕获它。 A NullReferenceException总是表示编程错误某处

至于性能 - 这取决于你的意思是“连续”。如果没有什么是真的错误,抛出异常会非常昂贵 - 正确使用时它们会很好。例如,你每秒看到多少个?请注意,在调试器中运行时,异常通常比调试器未连接时要昂贵得多。

与以往一样,当您担心性能时,您应该测试的表现,因此您可以使用硬数据做出决定。

0

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

0

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

如需进一步信息,请参阅Link,它也可以帮助你Link

0

例外的目的是为了改变性能到最低限度时不会抛出他们:添加一个try/catch块应该有冲击非常有限的应用程序性能 因此,我会建议添加尽可能多的try/catch块以根据需要捕获任何异常。

但是,投掷和捕捉异常可能非常昂贵。应用程序必须切换上下文,使用块来处理任何元素......这就是为什么我同意@Ramhound:你应该修正异常而不是捕获它。

相关问题