异常的产生与处理原语
操作码 | Fift 语法 | 堆栈 | Gas | 描述 |
---|---|---|---|---|
Please enter a search query | ||||
No results found |
TVM 指令内容列表
异常产生与处理原语
xxxxxxx 操作码 | xxxxxxxxxxxxxxxxxxxxxxxxxxxx Fift 语法 | xxxxxxxxxxxxxxxxx 堆栈 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 描述 | xxxx Gas |
---|---|---|---|---|
F22_n | [n] THROW | - 0 n | 抛出参数为零的 0 <= n <= 63 异常。换句话说,它将控制权转移到 c2 中的continuation,将 0 和 n 推入其堆栈,并彻底丢弃旧堆栈。 | 76 |
F26_n | [n] THROWIF | f - | 只有当整数 f!=0 时,才抛出参数为零的 0 <= n <= 63 异常。 | 26/76 |
F2A_n | [n] THROWIFNOT | f - | 只有当整数 f=0 时,才抛出参数为零的 0 <= n <= 63 异常。 | 26/76 |
F2C4_n | [n] THROW | - 0 nn | 对于 0 <= n < 2^11 ,是 [n] THROW 的编码,用于 n 的较大值。 | 84 |
F2CC_n | [n] THROWARG | x - x nn | 抛出带有参数 x 的 0 <= n < 2^11 异常,通过将 x 和 n 复制到 c2 的堆栈并将控制权转移给 c2 。 | 84 |
F2D4_n | [n] THROWIF | f - | 对于 0 <= n < 2^11 ,是 [n] THROWIF 的编码,用于 n 的较大值。 | 34/84 |
F2DC_n | [n] THROWARGIF | x f - | 只有当整数 f!=0 时,才抛出带有参数 x 的 0 <= nn < 2^11 异常。 | 34/84 |
F2E4_n | [n] THROWIFNOT | f - | 对于 0 <= n < 2^11 ,是 [n] THROWIFNOT 的编码,用于 n 的较大值。 | 34/84 |
F2EC_n | [n] THROWARGIFNOT | x f - | 只有当整数 f=0 时,才抛出带有参数 x 的 0 <= n < 2^11 异常。 | 34/84 |
F2F0 | THROWANY | n - 0 n | 抛出参数为零的 0 <= n < 2^16 异常。大致相当于 ZERO SWAP THROWARGANY 。 | 76 |
F2F1 | THROWARGANY | x n - x n | 抛出带有参数 x 的 0 <= n < 2^16 异常,将控制权转移到 c2 中。大致相当于 c2 PUSHCTR 2 JMPXARGS 。 | 76 |
F2F2 | THROWANYIF | n f - | 只有当 f!=0 时,才抛出参数为零的 0 <= n < 2^16 异常。 | 26/76 |
F2F3 | THROWARGANYIF | x n f - | 只有当 f!=0 时,才抛出带有参数 x 的 0 <= n<2^16 异常。 | 26/76 |
F2F4 | THROWANYIFNOT | n f - | 只有当 f=0 时,才抛出参数为零的 0 <= n<2^16 异常。 | 26/76 |
F2F5 | THROWARGANYIFNOT | x n f - | 只有当 f=0 时,才抛出带有参数 x 的 0 <= n<2^16 异常。 | 26/76 |
F2FF | TRY | c c' - | 设置 c2 为 c' ,首先将 c2 的旧值同时保存到 c' 的保存列表和当前continuation的保存列表中,该当前continuation存储到 c.c0 和 c'.c0 中。然后类似于 EXECUTE 运行 c 。如果 c 没有引发任何异常,从 c 返回时会自动恢复 c2 的原始值。如果发生异常,则执行权转移到 c' ,但在此过程中恢复了 c2 的原始值,以便 c' 可以通过 THROWANY 重新抛出异常(如果它自己无法处理)。 | 26 |
F2FF | TRY:<{ code1 }>CATCH<{ code2 }> | - | 等效于 <{ code1 }> CONT <{ code2 }> CONT TRY 。 | |
F3pr | [p] [r] TRYARGS | c c' - | 类似于 TRY ,但内部使用的是 [p] [r] CALLXARGS 而不是 EXECUTE 。这样,顶部 0 <= p <= 15 堆栈元素以外的所有元素将保存到当前continuation的堆栈中,然后从 c 或 c' 返回时恢复,并将 c 或 c' 的结果堆栈的顶部 0 <= r <= 15 值作为返回值复制。 | 26 |