还有运行时内部异常。大多数运行时开发者很少考虑如何生成并公开托管异常模型。但是运行时开发者需要知道异常是如何实现的。为了保证区分两种异常。...和OOM一样,会抛出一个预先定义的C++栈溢出异常对象,和OOM不同的时,检索托管对象时,运行时i总是i返回预定义的,共享全局的栈溢出异常。...在 COMPlusFrameHander 丢失的情况下, 最可能的后果是, 目标托管代码中的异常处理代码根本不会执行--没有 finally 块, 也没有 catch 块。...捕获exception* 时, 宏要检查异常对象, 但在捕获其他内容时, 没有任何要检查的内容, 宏必须猜测实际的异常是什么。但是当异常来自于运行时的外部时, 宏总是会猜测错误。...当前的解决方案是在标注筛选器中包装对外部代码的调用。筛选器将捕获外部异常, 并将其转换为 SEHException, 这是运行时的内部异常之一。此筛选器是预定义的, 使用起来很简单。