我在使用imapclient -library 进行异常处理时遇到问题。
我试图像这样处理 LoginError :
source = IMAPClient(host=args.source_server, port=args.source_port, ssl=not args.source_no_ssl)
try:
print('Login source...'.format(args.source_user), end='', flush=False)
source.login(args.source_user, args.source_pass)
print('OK')
except exceptions.LoginError as e:
print('ERROR: {}'.format(e))
exit()
如果出现异常,我有这个:
Login source...ERROR: b'Invalid login'
我认为问题是,即format
调用__str__()
Exception-object 的 -method 并且不要尝试解码。
所以主要问题是我可以转换这个字符串
"b'Invalid login'"
像这样的普通字节对象?
b'Invalid login'
编辑 1
@lenik如果我e.message.decode()
这样使用:
try:
print('Login source...'.format(args.source_user), end='', flush=False)
source.login(args.source_user, args.source_pass)
print('OK')
except exceptions.LoginError as e:
print('ERROR: {}'.format(e.message.decode()))
exit()
我有一个 AttributeError:
AttributeError: 'LoginError' object has no attribute 'message'
编辑 2
@snakecharmerb
try:
print('Login source...'.format(args.source_user), end='', flush=False)
source.login(args.source_user, args.source_pass)
print('OK')
except exceptions.LoginError as e:
print('ERROR: {}'.format(e.args[0].decode()))
exit()
AttributeError: 'str' object has no attribute 'decode'