aaa*_*aaa 4 c c++ exception external libraries
我正在编写一个使用外部第三方C库的C++库.因此,我的图书馆将调用此第三方库中的函数,第三方库将回调到我的库的不同部分.
我想知道在这种情况下异常会发生什么?假设MyLib :: foo()调用外部C库函数,最终调用MyLib :: bar(),并且bar抛出异常,会发生什么?将异常正确传播到foo()中的处理程序吗?
谢谢!
sbi*_*sbi 6
将异常正确传播到处理程序中foo()吗?
foo()
我认为异常是否通过外部C代码传播是不确定的.更糟糕的是,C代码没有准备,无法处理异常.C代码不需要抵御突然的,意外的返回,因此它不知道RAII等.
当我遇到这种情况时,我在返回到C API之前捕获了异常,将其存储起来,并在从C API调用后重新抛出它.
归档时间:
15 年,1 月 前
查看次数:
459 次
最近记录: