0

I'm trying to raise an exception on the Server Side of an SimpleXMLRPCServer; however, all attempts get a "Fault 1" exception on the client side.

RPC_Server.AbortTest() File "C:\Python25\lib\xmlrpclib.py", line 1147, in call return self.__send(self.__name, args) File "C:\Python25\lib\xmlrpclib.py", line 1437, in __request verbose=self.__verbose File "C:\Python25\lib\xmlrpclib.py", line 1201, in request return self._parse_response(h.getfile(), sock) File "C:\Python25\lib\xmlrpclib.py", line 1340, in _parse_response return u.close() File "C:\Python25\lib\xmlrpclib.py", line 787, in close raise Fault(**self._stack[0]) xmlrpclib.Fault: :Test Aborted by a RPC request">

4

2 回答 2

1

是的,当您在服务器端引发异常时,就会发生这种情况。您是否期望 SimpleXMLRPCServer 将异常返回给客户端?

您只能使用可以通过 XML 编组的对象。这包括

  • boolean : True 和 False 常量
  • 整数:直接传入
  • 浮点数:直接传入
  • strings : 直接传入
  • arrays :任何包含一致元素的 Python 序列类型。数组作为列表返回
  • 结构:Python 字典。键必须是字符串,值可以是任何符合要求的类型。可以传入用户自定义类的对象;只__dict__传输它们的属性。
  • 日期:自纪元以来的秒数(传入 DateTime 类的实例)或 datetime.datetime 实例。
  • 二进制数据:传入二进制包装类的实例
于 2009-07-29T20:11:06.690 回答
0

如果您提出这样的异常:

raise Exception('Help!')

在服务器中,您在客户端中获得的异常的消息成员将与在以类型的字符串表示为前缀的原始异常上执行 str() 相同。

我为消息成员得到的结果是:

<type 'exceptions.Exception'>:Help!

你当然可以解析这个来获得你需要的信息。

于 2013-10-03T10:57:22.473 回答