Oracle® Solaris Studio 12.4:C++ 用户指南

退出打印视图

更新时间: 2014 年 12 月
 
 

8.5 将异常与信号和 Setjmp/Longjmp 混合使用

可以在会出现异常的程序中使用 setjmp/longjmp 函数,只要它们不会互相影响。

使用异常和 setjmp/longjmp 的所有规则分别适用。此外,仅当在点 A 抛出与在点 B 捕获的异常具有相同的效果时,从点 A 到点 B 的 longjmp 才有效。需特别指出的是,不得使用 longjmp 进入或跳出 try 块或 catch 块(直接或间接),或使用 longjmp 跳过自动变量或临时变量的初始化或 non-trivial 销毁。

不能从信号处理程序抛出异常。