美文网首页
python学习笔记 -(3)异常

python学习笔记 -(3)异常

作者: MR_詹 | 来源:发表于2020-09-07 19:38 被阅读0次

异常
当检测到一个错误时,解释器就无法继续执行了,反而出现了一个些错误的提示,这是所谓的异常

语法
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()

相关文章

网友评论

      本文标题:python学习笔记 -(3)异常

      本文链接:https://www.haomeiwen.com/subject/jepcektx.html