异常的表现形式
import traceback
while True:
num = input('input a number:')
try:#捕获下面语句的异常
print ('100 / %s = %s' % (num, 100.0/int(num)))
# except ZeroDivisionError:#一种已知的异常,其他异常不能处理
# print('除数不能为0 ,重新输入!')
#
# except ValueError as error:
# print('除数为数字!',error)
# except Exception :#未知的异常
# print('异常了,处理异常')
except:#except Exception简写
print('异常了,处理异常',traceback.format_exc())#详细的报错信息
异常的使用:
class UserValueError(Exception):
print('')
class NameTooLongError(Exception):
err = 'name.long'
print('NameTooLongError')
def methFun(self):
pass
#自定义异常-----name 过短异常--继承
class NameTooShortError(Exception):
print('NameTooShortError')
def inputName():
name = input('请输入用户名:')#5-10
if len(name) > 10:
raise NameTooLongError#自定义的异常要自行抛出
elif len(name) < 5:
raise NameTooShortError
try:
inputName()
except NameTooShortError:
print('您输入的用户名太短!')
except NameTooLongError as e:
print('您输入的用户名太长!',e.err)
e.methFun()