异常有什么作用,主要在程序中,某些需要注意的地方,或者某些不需要的地方,可以通过抛出异常,在主函数中接收处理,处理结果不用写死在函数里,方便更改处理
#自定义异常类的条件
#1必须是一个类
#2要被exception所包含,也就是Exception是自定义异常类的父类
class NameisError(Exception):
pass
#这样就可以使用NameisErrror这个自定义异常.才能使用raise执行异常
案例
要求
用户输入用户名密码
用户名长度在3-8个字符
用户名中只能出现英文和数字密码必须是6位
密码必须由纯数字
class NameisError(Exception):
pass
class PWdisError(Exception):
pasd
#输入用户名密码
name=input()
pwd=input()
#检测用户名密码函数
def check(name,pwd):
if len(name)<3 or len(name)>8:
raise NameisError('名字必须在3到8个字符内')
#用isalnum判断并不是很准确,因为中文也会被认为是字母
if not name.isalnum():
raise NameisError('名字必须由字母或者数字组成')
if len(pwd) != 6:
raise PwdError('密码必须是6位')
if not pwd.isnumeric():
raise PwdError('密码必须是纯数字')
print('登陆成功')
try:
check(name,pwd)
#捕获异常,输出异常内容
except NameisError as e:
print(e)
except PwdisError as e:
print(e)