代码:

#!/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类的实例。

















Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐