异常的写法
- 语法
try:
可能发生错误的代码
except:
如果出现异常执行的代码
捕获异常
- 捕获指定异常
try:
可能发生错误的代码
except 异常类型:
如果捕获到该异常类型执行的代码
- 捕获多个指定异常
当捕获多个异常时,可以把要捕获的异常类型的名字,放到except后,并使用元组的方式进行书写
try:
可能发生错误的代码
except (可能的异常类型1,可能的异常类型2):
如果捕获到该异常类型执行的代码
- 捕获异常描述信息
try:
可能发生错误的代码
except (可能的异常类型1,可能的异常类型2) as result:
print (result)
- 捕获所有异常
Exception是所有程序异常类的父类
try:
可能发生错误的代码
except Exception as result:
print (result)
- 异常中的else
else表示的是如果没有异常要执行的代码
try:
可能发生错误的代码
except Exception as result:
print (result)
else:
没有异常时执行的代码
- 异常中的finally
finally表示的是无论有没有异常都要执行的代码
try:
可能发生错误的代码
except Exception as result:
print (result)
else:
没有异常时执行的代码
finally:
无论有没有异常都要执行的代码
自定义异常
将不满足程序逻辑要求的错误返回给用户
使用raise抛出自定义异常
class ShortInputError(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}个字符'
try:
con=input('请输入密码')
if len(con)<3:
raise ShortInputError(len(con),3)
except Exception as result:
print(result)
else:
print('密码输入已完成')