class PassWorldError(Exception):
error_count = 0
def __init__(self, str):
super().__init__(str)
# 在此处可以添加自定义操作
PassWorldError.error_count += 1
# raise可以手动抛出异常,抛出异常后,可以直接终止程序,或者使用try except进行捕获
# raise可以抛出自定义异常,也可以抛出系统异常
try:
password = input('请输入您的密码:')
if len(password) < 6:
raise PassWorldError('您的密码不足6位,请重新输入')
# raise NameError('您的密码错误了')
except PassWorldError as error:
print(error)
输入小于6位的密码会输出‘您的密码不足6位,请重新输入’
问题1:当这个异常被捕获时,为什么会打印出来的就是这个设置的描述字符串
答:当异常被捕获并打印时,默认情况下,Python 会调用异常对象的 __str__
方法来获取要显示的文本。对于 Exception
及其子类,如果没有自定义 __str__
方法,就会使用父类 Exception
内置的实现,该实现返回的就是创建异常对象时传递的描述字符串。