Tag: fail fast

优雅地处理损坏的状态exception

与此问题相关,我想强制CLR让我的.NET 4.5.2应用程序捕获损坏的状态exception,其唯一目的是记录它们然后终止应用程序。 如果我在应用程序周围的几个地方catch (Exception ex) ,那么这样做的正确方法是什么? 因此,在我指定属性后,如果我理解正确,所有catch (Exception ex)处理程序将捕获像AccessViolationException这样的exception并愉快地继续。 是的,我知道catch (Exception ex)是一个坏主意™,但如果CLR至少将正确的堆栈跟踪放入事件日志中,我将非常乐意向客户解释他的服务器应用程序在凌晨1点快速失败并在夜间离线是一件好事。 但不幸的是,CLR将一个不相关的exception记录到事件日志中,然后关闭该过程,以便我无法找出实际发生的情况。 问题是,如何实现这一目标,流程广泛: if the exception thrown is a Corrupted State Exception: – write the message to the log file – end the process (更新) 换句话说,这可能适用于简单应用程序中的大多数exception: [HandleProcessCorruptedStateExceptions] [SecurityCritical] static void Main() // main entry point { try { } catch (Exception ex) { // […]