是否可以确保在asp.net中针对未处理的异常执行finally块?

时间:2019-04-23 13:19:59

标签: asp.net .net try-catch-finally

在这个问题When is finally run if you throw an exception from the catch block?

这说明了警告,除非经过this documentation的确认,否则除非有未处理的异常,否则保证finally块可以运行。

对于控制台应用程序,这很简单,未处理的异常会终止该过程。但是,在ASP.net中,我的理解变得混乱。 ASP.net中未处理的异常不会杀死进程,甚至不会回收应用程序池,实际上会执行框架代码,以便通过网络将错误详细信息发送回去。但是,此类错误通常仍称为unhandled exceptions

就.net运行时而言,ASP.net中是否确实处理了这种“未处理的异常”,以便我可以相信finally块将始终被执行?

注意:我了解某些异常(例如StackOverflowException)将始终使应用程序池崩溃,因此可能不会执行finally块,我不关心那些极端情况。

1 个答案:

答案 0 :(得分:1)

由于异常是由asp.net框架进一步处理的,因此将执行finally块。仅仅因为您的代码不处理异常,并不意味着未处理该异常。