一 捕获指定异常
1.语法 try:
可能发生错误的代码
expect 异常类型:
如果捕获到该异常类型执行的代码
2 .捕获多个指定异常
try:
print(1/0)
except (NameError, ZeroDivisionError):
print('有错误')
结果:
有错误
3 .捕获异常描述信息
try:
print(1/0)
except (NameError, ZeroDivisionError) as result:
print(result)
结果:
division by zero
4 捕获所有异常
try:
print(1/0)
except Exception as result:
print(result)
5 异常的else
else表示的是如果没有异常要执行的代码
try:
print(1/0)
except Exception as result:
print(result)
else:
print('没有异常时执行')
6 异常的finally
finally表示的是无论是否异常都要执行的代码
try:
print(1/0)
except Exception as result:
print(result)
else:
print('没有异常时执行')
finally:
print('无论是否存在异常,都要执行')
二 自定义异常
语法: raise 异常类对象
#自定义异常类,继承Exception
class ShortInputErrorYCL(Exception):
def __init__(self, length, min_len):
self.length = length
self.min_len = min_len
# 设置抛出异常的描述信息
def __str__(self):
return f'你输入的长度是{self.length},不能少于{self.min_len}个字符'
def main():
try:
con = input('请输入密码:')
if len(con) < 3:
raise ShortInputErrorYCL(len(con), 3)
except Exception as result:
print(result)
else:
print('密码已经输入完成')
if __name__ == '__main__':
main()
结果:
请输入密码:12
你输入的长度是2,不能少于3个字符