Python学习笔记17_异常

发布于:2022-10-31 ⋅ 阅读:(253) ⋅ 点赞:(0)

本文所有例题全部来自

14-自定义异常思路分析_哔哩哔哩_bilibili

仅作自学使用,侵删。

一、什么是异常

我们知道写程序的时候有时候会出现一些错误导致报错

比如打开一个不存在文件,

这个时候需要一种语句使得如果出现异常就执行另一种解决方案

让程序不报错,使程序能够继续向下执行

二、异常语法的格式

一、如果错了就怎样语句

try:

        可能会出错的语句

except:

        如果出现异常执行的代码

try:
    f=open('test.txt','r')
except:
    f=open('test.txt','w')

注意,try下方一般只执行一行代码。

有时候异常里面也会出现错误,这个时候为了减少可能会出现的错误,通常会确定指定类型的异常才能触发异常执行

比如

捕获一种类型的异常

try:
    print(num)
except NameError:
    print('有错误')

异常类型有很多,bug多了就懂了

捕获多种类型的异常

try:
    print(1/0)
except (NameError,ZeroDivisionError):
    print('有错误')

对异常类型进行解释


try:
    print(1/0)
except (NameError,ZeroDivisionError) as result:
    print(result)

捕获所有异常

try:
    print(1/0)
except Exception as result:
    print(result)

注:Exception是所有异常的父类

二、如果错了就怎样,如果没错又怎样语句

try:
    print(1/1)
except Exception as result:
    print(result)
else:
    print('当没有异常的时候执行的代码')

三、如果错了就怎样,如果没错又怎样,不管怎么样,最后都怎么样

try:
    print(1/1)
except Exception as result:
    print(result)
else:
    print('当没有异常的时候执行的代码')
finally:
    print('异常处理结束了')

三、了解异常传递

import time
try:
    f=open('test.txt')#通过了第一层异常之后
    try:
        while True:
            contint=f.readline()
            if len(contint)==0:
                break
                #每隔两秒读取一次数据,并且输出,直到数据读取完成为止
            time.sleep(2)
            print(contint)
    except:
        print('意外终止了读取数据')
finally:
    f.close()
    print('关闭文件')

四、自定义异常类

#自定义异常类
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}'
        #创建了一个异常类提示
if __name__ == '__main__':
    try:
        con=input('请输入密码')
        if len(con)<3:
            raise ShortInputError(len(con),3)
#抛出异常类
    except Exception as result:
        print(result)
    else:
        print('密码已经输入完成')


网站公告

今日签到

点亮在社区的每一天
去签到