从旧版C回调中抛出C++异常是不可行的。C和C++是两种不同的编程语言,它们的异常处理机制也不同。C语言没有内置的异常处理机制,而C++语言支持异常处理。在C++中,异常是通过抛出和捕获异常对象来处理的,而C语言没有这样的机制。
当C代码通过回调函数与C++代码交互时,如果C代码中发生异常,C++代码无法捕获并处理这个异常。C++异常只能在C++代码中被捕获和处理,如果异常没有被捕获,程序将会终止。
因此,如果你想在C代码的回调函数中处理异常,你需要在C代码中进行异常处理,并将异常转换为适合C语言的错误码或其他错误处理机制。这样可以确保C++异常不会泄漏到C代码中,同时保持C和C++代码的兼容性。
总结起来,从旧版C回调中抛出C++异常是不可行的,需要在C代码中进行异常处理,并将异常转换为适合C语言的错误处理机制。
领取专属 10元无门槛券
手把手带您无忧上云