4

当这个被 python 关闭时,我试图在 memcached 中捕获一个错误:

import memcache
import socket
mc = memcache.Client(['127.0.0.1:11211'], debug=1)

try:
    print mc.get('gfdsgf')
except socket.error:
   print 'error'

但是我的控制台中仍然出现此错误:

MemCached: MemCache: inet:127.0.0.1:11211: connect: Connection refused.  Marking dead.
None
4

1 回答 1

2

这不是你能捕捉到的真正的错误,这只是一个日志,它显示是因为你有调试参数为1,所以关闭调试参数。正如您所看到的,您仍然从打印中得到 None ,这意味着您的密钥不存在

尝试这样的事情:

import memcache
mc = memcache.Client(['127.0.0.1:11211'], debug=0)
try:
    print mc.get('gfdsgf')
except (mc.MemcachedKeyTypeError, mc.MemcachedKeyNoneError,
                    TypeError, mc.MemcachedKeyCharacterError,
                    mc.MemcachedKeyError, mc.MemcachedKeyLengthError,
                    mc.MemcachedStringEncodingError):
   print 'error'
于 2013-08-06T16:49:35.203 回答