是否可以在最后进行尝试/捕获?

Fre*_*dou 5 c#

这是一个"好"的代码?

        try
        { /*stuff*/ }
        catch (Exception e)
        { /*stuff*/ }
        finally
        {
            try
            { /*stuff*/ }
            catch { /*empty*/ }
        }
Run Code Online (Sandbox Code Playgroud)

我需要在finally中执行复杂的操作,它可能会崩溃,因为它连接到数据库

这看起来很奇怪,所以.这是正确的方法吗?

Mit*_*ers 3

这实际上取决于你在做什么,但就我个人而言,如果它确实是在另一个 try catch 之后并在操作完成之后,我不会将其嵌套在 finally 中,只是将其视为另一个 try catch 。这将消除其中的一些“奇怪”之处。