我正在开发一个服务器-客户端应用程序,其中客户端调用服务器的API,该API为用户输入提供了Python接口。这意味着客户端界面和服务器界面都是用Python编写的,而套接字代码则是用C++编写的。
在服务器端:
我有一个名为Test
的类,在C++中,这个类通过SWIG的director特性被继承到Python中命名为TestPython。
此外,我还有一个C++中的异常类MyException。
现在,TestPython类的一个函数从Python代码中抛出MyException()
异常。
我想使用SWIG在C++代码中处理从Python抛出的异常。
以下是代码片段:
C++代码-
class MyException
{
public:
string errMsg;
MyException();
MyException(string);
~MyException();
};
class Test
{
int value;
public:
void TestException(int val);
Test(int);
};
Python 代码 -
class TestPython(Test):
def __init__(self):
Test.__init__(self)
def TestException(self,val):
if val > 20:
throw MyException("MyException : Value Exceeded !!!")
else:
print "Value passed = ",val
现在,如果调用
TestException()
函数,它应该抛出MyException
。我想在我的C++代码中处理这个MyException()
异常。有人能建议我该怎么做吗?我的意思是我应该在我的*.i(接口)文件中写什么来处理这个异常。上面的Python中的TestException()
是由客户端调用的,因此如果服务器抛出任何异常,我必须通知客户端。
director:except
)的情况。 - Flexo