【发布时间】:2019-09-12 16:43:53
【问题描述】:
在这个问题When is finally run if you throw an exception from the catch block?
它解释了除非 this documentation 确认的异常未处理,否则保证最终块运行的警告。
对于控制台应用,很简单,未处理的异常会终止进程。但是,在 ASP.net 中,我的理解变得混乱。 ASP.net 中未处理的异常不会终止进程,甚至不会回收应用程序池,实际上框架代码会执行,以便通过网络将错误详细信息发送回。但是,此类错误仍通常称为unhandled exceptions。
就 .net 运行时而言,ASP.net 中的这种“未处理的异常”是否真正被处理,因此我可以相信 finally-block 将始终被执行?
注意:我知道某些异常(例如 StackOverflowException)总是会使应用程序池崩溃,因此很可能不会执行 finally 块,我不关心那些边缘情况。 p>
【问题讨论】:
标签: asp.net .net try-catch-finally