什么是异常处理个性功能?

问题描述 投票:0回答:1

我查看了 LLVM EH 内在函数以及 Itanium ABI 的文档,但我对一些事情感到困惑。

什么是异常人格功能?它执行什么工作?我该如何创建一个?

llvm
1个回答
12
投票
我也有同样的问题。我刚刚找到

这些文章,它们彻底解释了它的工作原理、完整的异常处理过程,包括个性函数的确切目的和逐步实现。

为了得到 SO 的答案,这里简要总结了异常发生时的个性行为(但你真的应该看看这个人写的关于这个问题的

18 22 篇文章!):

  • 首先,它将为每个堆栈帧(查找阶段)调用一次,并且必须返回一个值(来自枚举),告诉展开当前堆栈帧是否能够捕获异常。个性应该使用位于函数末尾的一组特定表来获取此信息。

  • 如果堆栈帧可以捕获异常,则将使用不同的

    actions

     参数第二次调用该个性(清理阶段)。

© www.soinside.com 2019 - 2024. All rights reserved.