【发布时间】:2013-09-17 15:00:20
【问题描述】:
当我在memcache.Client有一个except时,我可以捕获异常,但是mc.getstats仍然是exec,当有异常时我应该怎么做才能停止main?
def main():
if 'host' not in dir():
host = '127.0.0.1'
if 'port' not in dir():
port = '11211'
server = host + ':' + port
try:
mc = memcache.Client([server], debug=1,socket_timeout=3)
result = mc.get_stats()
mcstat = result[0][0]
print mcstat
except Exception,e:
print e
sys.exit(3)
if __name__ == "__main__":
try:
main()
except:
sys.exit(2)
【问题讨论】:
-
你确定
mc = memcache.Client([server], debug=1,socket_timeout=3)被屏蔽了吗? -
当然,在引发任何异常之前,您的代码有 40,000 个错误。
-
当我在 memcache.Client 中有一个例外时 太好了。一些细节怎么样? 1) 你做了什么来产生错误?,以及 2) 错误信息是什么?
-
@tcaswell,它没有。该行仅创建客户端,客户端随后用于设置或从服务器获取值。如果创建客户端抛出错误,main() 将结束并且 mc.get_stats() 将不会执行。
-
是的,我用一些错误的参数尝试了这个脚本,但是在异常之后它不能停止主函数,像这样: MemCached: MemCache: inet:172.16.181.67:30220: connect: Connection denied .标记死亡。列表索引超出范围
标签: python exception main exit