[英]How do I define an Error Class?
Python 2.7.3
当我为像鹦鹉一样不再存在的用户运行SillyWalk.getGroups(user_id = user)
时,出现以下错误。
Traceback (most recent call last):
File "C:\Python\API\getgroups.py", line 32, in <module>
Grp = SillyWalk.getGroups(user_id = user)
File "c:\python27\lib\site-packages\SillyWalkapi-1.4.2-py2.7.egg\SillyWalkapi\__init__.py", line 349, in handler
parse_format=args['format'], **args)
File "c:\python27\lib\site-packages\SillyWalkapi-1.4.2-py2.7.egg\SillyWalkapi\__init__.py", line 435, in __wrap_in_parser
return parser(self, data)
File "c:\python27\lib\site-packages\SillyWalkapi-1.4.2-py2.7.egg\SillyWalkapi\__init__.py", line 278, in parse_etree
raise SillyWalkError(u'Error: %(code)s: %(msg)s' % err.attrib)
SillyWalkError: Error: 1: User not found
我试图通过try ... except
来解决此问题, try ... except
声明中没有:
try:
Grp = SillyWalk.getGroups(user_id = user)
g = 0
for group in Grp.find('groups').findall('group'):
g += 1
u_ID = user
g_ID = group.get('_ID')
gName = "" # group.get('name')
HasParrot = group.get('HasParrot')
Priv = group.get('Priv')
Mbr = group.get('members')
threads = group.get('threads')
tup = '{0}\t{1}\t{2}\t{3}\t{4}\t{5}\t{6}\n'.format(u_ID, g_ID, gName.encode('utf-8'), HasParrot, Priv, Mbr, threads)
OutFile.write(tup.encode('utf-8'))
except SillyWalkError:
tup = '{0}\tNo Records Found\n'.format(u_ID)
OutFile.write(tup.encode('utf-8'))
但这给了我一个不确定的错误:
Traceback (most recent call last):
File "C:\Python\API\getgroups.py", line 47, in <module>
except SillyWalkError:
NameError: name 'SillyWalkError' is not defined
>>>
这是我第一次尝试编写异常类,所以有人可以告诉我该怎么做吗? 由于各种错误原因, SillyWalk.getGroups
具有十几个不同的错误号。 我每个人都需要一个保护套吗?
我将永远在你的债务中! (您永远不会从我这里收集任何东西,但我仍然欠您!)
顺便说一句:在扎根我的脚本胆量的同时,有人可以告诉我如何解决我的gName
问题,所以我不需要将其消除? 它一直在给我:
Traceback (most recent call last):
File "C:\Python\API\getgroups.py", line 44, in <module>
OutFile.write(tup.encode('utf-8'))
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 54: ordinal not in range(128)
NameError: name 'SillyWalkError' is not defined
只是表示NameError: name 'SillyWalkError' is not defined
名称SillyWalkError
。 它与异常处理或编写异常类无关。
看来您只是没有将名称SillyWalkError
导入到试图捕获异常的模块中。 如果没有except
,您得到的错误表明异常类本身运行良好。
好,体育迷们!
至少我对此提出的第一个问题是我许多金发时刻中的一个!
我使用的是except SillyWalk.SillyWalkError ...
而不是except SillyWalk***api***.SillyWalkError ...
感谢所有提供帮助的人!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.