我知道如何使用 try catch finally 块。每个人都这样做。
但是我想知道这个强大功能的内部实现。它是否像 SQL 中的提交或回滚方法一样工作?
使用 try catch 是否会导致性能问题?
我们是否需要为每个小函数使用 try catch?
.net 程序是否提前一步并将结果保留在 ram 中?
有人可以向我们解释一下.net框架如何处理这个非常有用的功能吗?我想要一个深刻的技术答案。(幕后花絮)
它是否像 SQL 中的提交或回滚方法一样工作?
不,它没有。Clr 不保存变量的旧值。如果引发异常,clr 只会跳回到堆栈中的前一种方法。
使用 try catch 是否会导致性能问题?
是的,确实如此。如果引发异常,clr 将创建堆栈跟踪。这是一项非常昂贵的操作。但是,仅尝试/捕获块不会产生严重的性能副作用。
我们是否需要为每个小函数使用 try catch?
这取决于您的编码风格。
有人可以向我们解释一下.net框架如何处理这个非常有用的功能吗?我想要一个深刻的技术答案。(幕后花絮)
有一篇关于它的好文章:http://codinglight.blogspot.ru/2008/08/recently-i-received-question-on.html