CLR异常系统中的fault子句是什么?

ric*_*ott 3 .net clr exception

我正在阅读这篇关于处理损坏的状态异常的文章,我遇到了令我困惑的事情.

什么是错误条款?

请参阅以下文章的引用:

错误条件只能从包含意外条件的函数传递给该函数的调用者.异常有权将函数执行的结果从当前函数的作用域传递到堆栈的每一帧,直到它到达知道如何处理意外情况的帧.CLR的例外制度(被称为双通异常系统)异常传递到线程的调用堆栈上的每个前身,与主叫方和诉讼开始,直到某个函数表示将处理异常(这被称为第一通).

然后,异常系统将展开调用堆栈上每个帧的状态,在该位置引发异常和处理异常(称为第二遍).当堆栈展开时,CLR将在展开时运行每个框架中的finally子句和错误子句.然后,执行处理框架中的catch子句.

Mic*_*ers 6

根据这篇文章:

C#语言中没有的SEH子句的另一个例子是fault子句.它类似于finally子句,除了它只在被保护块中抛出异常时才被调用.

另一篇文章证实:

故障异常处理程序类似于finally块,只有当它的关联try块由于异常而被保留时才调用它.在故障处理程序被赋予执行机会之后,异常继续在搜索中或者愿意捕获它的处理程序中.