使用SWIG将C++库移植到Go例外,此代码作为如何移植抛出异常的C++库的示例。所有抛出异常的方法都包含在try/catch块中,这些块将异常转换为恐慌,然后恢复以返回go错误。
DemoLib C++类有两种方法(DivideBy 和 NegativeThrows ),它们在某些输入上抛出异常,还有一种方法(NeverThrows)永远不会抛出异常。
DemoLib::DemoLib() {}
double DemoLib::DivideBy(int n) {
if (n == 0) {
throw std::invalid_argument(\"Cannot divide by zero\");
}
return 1.0 / n;
}
暂无评论