Tru*_*die 5 c# using exception try-finally
我试图绕过这个.根据此页面上的Using发言:
using语句确保即使在对象上调用方法时发生异常,也会调用Dispose.您可以通过将对象放在try块中然后在finally块中调用Dispose来实现相同的结果; 实际上,这就是编译器如何翻译using语句.
在处理的异常中,保证运行关联的finally块.但是,如果未处理异常,则finally块的执行取决于如何触发异常展开操作.
那么如果一个Using语句转换Try-Finally为不能保证调用finally语句的语句,如何在异常情况下保证调用Dispose方法?
Jon*_*eet 10
它的行为确实像try/finally一样 - 所以如果应用程序终止,资源可能不会被处理......这通常是可以的,因为通常处理是为了释放进程持有的资源......并且OS会整理那些反正过程死亡.(这并不是说该Dispose方法不会被调用...它与普通的try/ finally.一样.)
显然,如果你在文件系统上有一个"锁定文件"或类似的东西,这将是一个问题 - 但是在断电等情况下你会遇到同样的问题.
| 归档时间: |
|
| 查看次数: |
594 次 |
| 最近记录: |