Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用异常块.net_C#_.net - Fatal编程技术网

C# 使用异常块.net

C# 使用异常块.net,c#,.net,C#,.net,我在一篇文章中读到,在代码中编写许多try-catch异常块将增加性能开销 这是真的吗?为什么声明许多异常块会影响性能 谢谢 SCATry/catch块不会产生太多性能开销 抛出异常确实有一些开销,但这不应该是一个问题——异常应该是异常的 本文更详细地介绍了如何实现try/catch块及其运行时成本:我认为下面的引文很好地总结了异常 如果您担心异常性能,那么您使用它们是错误的 如果按照预期的方式使用异常,则异常不会对应用程序的性能产生重大影响。这是针对特殊情况的 关于异常性能有很多不好的信息。如

我在一篇文章中读到,在代码中编写许多try-catch异常块将增加性能开销

这是真的吗?为什么声明许多异常块会影响性能

谢谢
SCA

Try/catch块不会产生太多性能开销


抛出异常确实有一些开销,但这不应该是一个问题——异常应该是异常的


本文更详细地介绍了如何实现try/catch块及其运行时成本:

我认为下面的引文很好地总结了异常

如果您担心异常性能,那么您使用它们是错误的

如果按照预期的方式使用异常,则异常不会对应用程序的性能产生重大影响。这是针对特殊情况的


关于异常性能有很多不好的信息。如果你能发布一个你正在阅读的文章的链接,这样我们就可以了解他们为什么认为这会是一个问题。它们可能涵盖了一个不适用于大多数情况的特殊情况方面。

以下是一篇关于异常开销的好文章,作者是:

以下是文章中的一个简单示例:

Console.WriteLine(Now().ToString("hh:mm:ss.fffffff"))
DoNothingImportant()
ThrowRecursiveExceptions(1000)
Console.WriteLine(Now().ToString("hh:mm:ss.fffffff"))

Output:
10:57:38.0252702
10:58:39.9205680
你可以看到这大约需要2分钟,但由于它们只用于特殊行为,我不担心。此外,通过捕获和日志记录发现的真正的“异常”,如果您能够立即修复它,而不是在问题悄无声息地失败时尝试进行鬼调试,那么它对您的价值将大得多。

(很抱歉没有直接回答您的问题)

在希望捕获潜在但罕见、失败或异常行为(如读取文件或查询数据库)的位置,建议使用Try/Catch异常块。您可能还希望将try/catch块放在函数无法履行其契约的位置


使用断言捕获永远不会发生的bug或缺陷。还可以将断言用作自文档代码。(请参阅《代码完成》第二版中的“防御性编程”一章)。

“异常应该是异常的”——准确地说。我认为这一点表达得再好不过了。看看这个