首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Pyro4处理自定义异常?

如何使用Pyro4处理自定义异常?
EN

Stack Overflow用户
提问于 2019-04-04 19:35:52
回答 1查看 260关注 0票数 1

我正在尝试使用Pyro4公开我的类。问题是我的类有一个Pyro4无法处理的自定义异常。

我尝试过使用序列化,但似乎都不起作用。

我所拥有的是:

代码语言:javascript
复制
# exception class
class TestException(Expection):
    pass


# test class
@Pyro4.expose
class Test:

   def get_exception(self):
       raise TestException("This is a random exception.")

Pyro4无法引发TestException。它给我一个错误:{SerializedError}不支持序列化类: TestException

有谁有办法解决这个问题吗?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2019-04-05 03:21:47

您需要告诉Pyro (或者更确切地说,是底层的Serpent序列化程序),您同意反序列化自定义异常类,以及它必须如何做到这一点。根据这一点,您可能还必须确保双方(客户端和服务器)都有权访问定义您的TestException类的同一源模块。

这在文档中有介绍。具体来说,https://pyro4.readthedocs.io/en/stable/clientcode.html#changing-the-way-your-custom-classes-are-de-serialized

出于安全原因,这会引发错误并需要程序员的努力。(对从网络接收的随机类进行反序列化是危险的)

最后,只捕获Pyro服务器中的异常并引发一个标准的Python异常可能会更容易。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55515011

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档