异常
当检测到一个错误时,解释器就无法继续执行了,反而出现了一个些错误的提示,这是所谓的异常
语法
try:
可能发生错误的代码
except:
如果出现执行的代码
捕获指定异常
语法
try:
可能发生异常的代码
except 异常类型:
如果捕获到改异常类型执行的代码
/// 如果尝试执行的代码的异常类型和要捕获的异常类型不一致,则无法捕获异常
/// 一般try下方只放一行执行的代码
try:
print(num)
except NameError:
print('有错误')
捕获多个指定异常
当捕获多个异常时,可以把要捕获的异常类型的名字,放到except后,并使用元组的方法进行书写
try:
print(num)
except (NameError,ZeroDivisionError):
print('有错误')
捕获异常描述的信息
try:
print(num)
except (NameError,ZeroDivisionError) as result:
print(result)
获取所有异常
Exception 是所有程序异常类的父类
try:
print(num)
except Exception as result:
print(result)
异常的else
else 表示的是如果没有异常要执行的代码
try:
print(1)
except Exception as result:
print(result)
else:
print('打印没有问题')
异常的finally
finally表示的是无论是异常都要执行的代码,例如关闭文件
try:
f = open('text.txt','r')
except Exception as resutl:
f = open('text.txt','w')
else:
print('执行文件没有异常')
finally:
f.close()
自定义异常
抛出自定义异常的语法是`raise`异常类对象
例如:密码长度不足,则报异常(用户输入密码,如果输入长度不足3位,则报错)
# 自定义异常类,继承Exception
class ShortInputError(Exception):
def __int__(self,length,min_len):
self.lenght = length;
self.mni_len = min_len;
# 设置抛出异常的的描述信息
def __str__(self):
return f'你输入的长度{self.lenght},不能少于{self.mni_len}个字符'
def main():
try:
con = input('请输入密码:')
if len(con) < 3:
raise ShortInputError(len(con),3)
except Exception as result:
print(result)
else:
print('密码输入完成')
main()
网友评论