根据实际情况定义自己需要的异常,往往非常实用。抛出异常的方式有点类似C++中的throw。
不过在Python中使用的raise
1、通过raise修改python常见的异常提示信息
#FileName :ras.py
#循环输入
while True:
try:
#获取用户输入
s = input('请输入一个字符串:')
except EOFError:
print('异常处理:用户输入没有完成')
finally:
if s.find('o') != -1:
#使用raise抛出经过修改的异常
raise NameError('用户的输入中,不能包含字符o')
else:
print('用户输入为:%s'%s)
2、通过raise抛出自定义异常
#FileName :ras.py
#自定义异常处理类,进程自类Exception
class CustomException(Exception):
def __init__(self,length,atlen):
Exception.__init__(self)
self.length = length
self.atlen = atlen
#获取用户输入
try:
s = input('请输入一个字符串:')
if len(s) < 3:
#抛出自定义异常
raise CustomException(len(s),3)
except EOFError:
print('异常处理:用户输入没有完成')
#捕获自定义异常,在2.6之前使用CustomException, x 之后使用as代替逗号
except CustomException as x:
print('用户输入的字符串长度为%d,按照要求长度至少为%d'%(x.length,x.atlen))
finally:
print('有没有异常都会执行')
print('用户输入为%s '%s)
注意:#捕获自定义异常,在2.6之前使用CustomException, x 之后使用as代替逗号