案例介绍
是登录函数,需要输入 用户名、密码,如果用户名不是 admin
,提示 用户名不存在,请重新输入用户名
如果用户名是 admin
,密码不是 123456
,提示 密码不正确,请重新输入密码
分析
为了提示、处理不同的消息,自定义2个异常
实现一(有瑕疵)
def login(username,password):
if username == 'admin':
if password == "123456":
return True
else:
raise Exception("密码不正确!")
else:
raise Exception("用户名不存在!")
调用测试:
try:
# login("lilei","111")
login("admin","111")
except Exception as e:
print("异常信息:",e)
print("请重新输入用户名")
执行结果:
异常信息: 密码不正确!
请重新输入用户名 # 该提示与上一行不符合逻辑
实现二
用户名不存在的异常类:
class UsernameNotExistError( Exception ):
"""
用户名不存在
"""
pass
密码错误的异常类:
class PasswordError (Exception):
'''
密码错误
'''
pass
登录函数:
def login(username,password):
'''
假设用户名必须是 admin,密码必须是123456
'''
if username != 'admin':
raise UsernameNotExistError("用户名不存在!")
else:
if password != '123456':
raise PasswordError("密码不正确!")
else:
return True
测试执行:
try:
# res = login("lilei","111111")
res = login("admin","111111")
print("登录结果:" , res)
except UsernameNotExistError as ue:
print("异常信息:",ue)
print("请重新输入用户名!")
except PasswordError as pe:
print("异常信息:",pe)
print("请重新输入密码!")