调试一个引发异常的程序
代码:#!/usr/bin/env python# Filename: raising.pyclass ShortInputException(Exception):'''A user-defined exception class.'''def __init__(self,length,atleast):Exception.__init__(self)self.
·
代码:
#!/usr/bin/env python
# Filename: raising.py
class ShortInputException(Exception):
'''A user-defined exception class.'''
def __init__(self,length,atleast):
Exception.__init__(self)
self.length=length
self.atleast=atleast
try:
s=raw_input('Enter something --> ')
if len(s)<3:
raise ShortInputException(len(s),3)
# Other work can continue as usual here
except EOFError:
print '\nWhy did you do an EOF on me?'
except ShortInputException,x:
print 'ShortInputException: The input was of length %d, \
was expecting at least %d' %(x.length,x.atleast)
else:
print 'No exception was raised.'
单步执行程序,在执行到s=raw_input()的时候,跳转到App.py的Win32RawInput()函数,弹出输入窗口,输入少于3个字符以后,跳转到if len()语句,由于长度小于3,所以执行raise语句,跳转到ShortInputException类,初始化以后跳转到try下面的except EOFError语句,当前条件不符合,所以继续跳转到下一个except语句,并且执行except ShortInputException里的语句。
注:x是ShortInputException类的实例。
更多推荐
已为社区贡献7条内容
所有评论(0)