我们如何处理Python xmlrpclib连接被拒绝?

我不知道我在这里做错了什么,我写了一个RPC客户端试图连接到一个不存在的服务器,我正在尝试处理抛出的异常,但无论我尝试什么我无法弄清楚我应该如何处理这个问题:

def _get_rpc():
    try:
        a = ServerProxy('http://dd:LNXFhcZnYshy5mKyOFfy@127.0.0.1:9001')
        a = a.supervisor
        return a
    except:
        return False

rpc = _get_rpc()
if not rpc:
    print "No RPC"

由于没有服务器运行,我希望输出为“无RPC”,但我得到一个例外:

Traceback (most recent call last):
  File "xmlrpctest.py",line 20,in 
最佳答案
_get_rpc返回对未连接的ServerProxy的supervisor方法的引用.在您处理它的_get_rpc调用中没有发生异常;当你试图评估这个supervisor方法时(在“if not rpc”中),它就会发生.尝试从交互式提示

Python 2.6.5 (r265:79063,Apr 16 2010,13:57:41) 
[GCC 4.4.3] on linux2
Type "help","copyright","credits" or "license" for more information.
>>> import xmlrpclib
>>> xmlrpclib.ServerProxy("http://127.0.0.1");
__getattr__','__init__','__module__','__repr__','__str__']
>>> foo.supervisor
Traceback (most recent call last):
  File "

请注意在尝试评估.supervisor方法(ServerProxy(…).supervisor,foo.supervisor或bar)时如何看待异常,而不是在将其分配到别处时(bar = foo.supervisor).

相关文章

功能概要:(目前已实现功能)公共展示部分:1.网站首页展示...
大体上把Python中的数据类型分为如下几类: Number(数字) ...
开发之前第一步,就是构造整个的项目结构。这就好比作一幅画...
源码编译方式安装Apache首先下载Apache源码压缩包,地址为ht...
前面说完了此项目的创建及数据模型设计的过程。如果未看过,...
python中常用的写爬虫的库有urllib2、requests,对于大多数比...