我正在尝试将异常catch处理程序应用于我使用%extend指令添加到类的方法(但没有成功)。
My Simple Test.h文件:
namespace Test {
class TestClass
{
int method1()
{
throw MyException();
}
}
}
我的Swig文件:
%module Test
%{
#include Test.h
%}
%extend Test::TestClass {
int method2()
{
throw MyException();
}
}
%exception {
try {
$action
} catch (MyException& e) {
// do something
}
}
%include "Test.h"
当我编译这个swig文件时,method1
的包装器是用异常处理程序生成的,但method2
的包装器是在没有异常处理程序的情况下生成的(我也尝试了完整方法的所有变体)名称声明和其他许多尝试没有成功)。
有没有办法在Swig中将%exception
指令添加到扩展方法?
答案 0 :(得分:0)
在您的界面中交换%extend
和%exception
指令的顺序。您应用它们的顺序非常重要,它允许您有选择地包含和排除被修改的内容。