我刚读完这篇关于异常的优点和缺点的文章,我同意Try-Catch块不应该用于"正常"控制流管理的情绪(不要像goto一样使用它们).然而,一位作者提出了关于可维护性(尤其是性能)的好点,这让我对Try-Finally块中的相同内容感到好奇.
我在我的ASP.NET应用程序中使用Try 包围每个 Connection open事件,以便我可以确保在Finally中关闭Connection.在Web应用程序中泄漏连接显然不是一件好事,我怀疑我是否会改变这种做法,但您有什么想法?
注意:我确实有连接包装在DAL中,并且可以在调用对象析构函数时关闭连接,但这对我来说似乎很粗略.据我所知,你不能指望在异常情况下调用析构函数.我错了吗?
您无需避免try {} ... finally {}模式的编码.但是就你的连接而言,因为它们是IDisposable,所以使用"using"代替,因为它对你来说和更长,更麻烦的try/finally块一样.