我正在使用 SWIG 编写一个 %Exception 处理程序。我想使用 2 个不同的处理程序:1 个用于特殊情况,另一个用于其他所有情况。有没有办法做到这一点?也就是说,现在,我有这个:
%exception {
//basic error handling
}
%exception foo1 {
//advanced error handling
}
%exception foo2 {
//advanced error handling
}
%exception foo3 {
//advanced error handling
}
但是因为所有 3 个 foo 处理程序都是相同的(它们是同一类的三个成员,如果这有帮助的话),所以它们最好是相同的代码。它看起来不像 SWIG documentation允许这样做。我认为我不能(或不想)对所有事情使用高级处理程序,因为它很昂贵并且可能不是线程安全的。我错过了什么吗?
最佳答案
好吧,您始终可以使用 SWIG 宏:
%define %custom_exception
{
//advanced error handling
}
%enddef
然后使用
%exception foo1 %custom_exception
%exception foo2 %custom_exception
%exception foo3 %custom_exception
关于c++ - SWIG:重用选择性异常处理程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38085945/