如何在Twisted中捕获异常?

2 投票
1 回答
5026 浏览
提问于 2025-04-17 12:08

我在用Python和Twisted搭建一个很简单的服务器。当我尝试同时运行两个服务器时,就出现了一个异常:

twisted.internet.error.CannotListenError: Couldn't listen on 127.0.0.1:5050: [Errno 98] Address already in use.

这很有道理。我该怎么处理这个异常呢?

如果已经有一个服务器在运行,我希望能简单地终止反应器(reactor)并关闭所有东西。否则,我就会遇到这个异常,然后程序就会一直卡在那里,直到我强制结束这个进程。

1 个回答

7

你需要使用一个叫做 错误处理回调 的东西,在Twisted里叫做 errBack。你可以通过 addErrback 方法把它添加到一个 Deferred 对象上。

撰写回答