一、了解异常
当程序检测到错误时,解释器就无法继续执行了,反而出现错误提示,这就是所谓的“异常”
二、异常的写法
2.1语法:
try:
可能发生的错误的代码
except:
如果出现异常执行的代码
2.2例:
try:
open('test.txt','r')
print('没错误执行')
except:
open('test.txt','w')
print('发生错误执行')
2.3捕获指定异常
2.3.1语法:
try:
可能发生的错误的代码
except 异常类型:
如果捕获到该类型错误执行的代码
注意:1、如果尝试执行的代码的异常类型和要补货的异常类型不一致,则无法捕获异常
2、一般try下方脂肪一行尝试执行的代码
2.3.2例:
# print(num)报异常NameError
# print(1/0)报异常ZeroDivisionError
try:
print(num)
except NameError:
print('发生错误执行')
2.3.3捕获多个指定异常
写法:将异常放到except后面以元组的方式书写
2.3.4捕获异常描述信息
例:
try:
print(1 / 0)
except (NameError,ZeroDivisionError) as result:
print('发生错误执行')
print(result)#division by zero
2.3.5捕获所有异常
except后面放Exception:Exception是所有程序异常的父类
2.4异常的else
如果没有异常执行else后面的代码
try:
代码
except:
代码
else:
代码
2.5异常的finally
表示无论是否有异常都执行
三、自定义异常
# 自定义异常类,继承Exception类
class shortInputError(Exception):
def __init__(self,lenth,min_len):
self.lenth=lenth
self.min_len=min_len
def __str__(self):
return f'您输入的长度是{self.lenth},系统定义长度是{self.min_len}'
def main():
try:
str = input('请输入密码')
if len(str)<3:
raise shortInputError(len(str),3)
except Exception as result:
print(result)
else:
print('密码输入正确')
main()