在try块内停止调试时,finally块会执行吗

本文关键字:finally 执行 调试 try | 更新日期: 2024-10-22 22:19:08

我在try块中打开了一个数据库连接。如果我进入try块,然后停止调试,finally块会被执行吗?换句话说,连接是否保持打开状态?

在try块内停止调试时,finally块会执行吗

如果"停止调试"的意思是停止应用程序,当然不是(例如,在Visual Studio中按停止按钮停止当前调试会话)。这是通过按下F5按钮启动控制台应用程序的典型情况。

如果您所说的"停止"是指从VS外部启动的当前运行的应用程序(例如,您用Ctrl+Alt+p连接的应用程序)"分离",则该程序将运行到它的末尾,并将执行编程所需的一切。对于在IIS中运行的任何web应用程序(但不是IIS express)也是如此。

否,如果从调试器终止应用程序,则不会执行finally块。整个过程都被扼杀了。事实上,这可能会导致不公开的引用。(如果你只是分离,它会继续运行)

不过,连接将不会保持打开状态。服务器迟早会断开连接。

这取决于应用程序;如果是web应用程序,其余代码将执行,因为它可以从生成的.dll文件中访问。如果是windows应用程序,那么finally块将不会执行