栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python入门之异常处理

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python入门之异常处理

文章目录

一、异常二、捕获异常三、含else的异常捕获四、异常传递五、自定义异常


一、异常
try:
    f = open('test.txt', 'r')

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

f.close()  # 切记创建文件对象要及时关闭
二、捕获异常
try:
    print(num)
except EOFError:  # 捕获异常
    print("EOF错误")
except NameError:
    print("未定义变量")

try:
    print(10 / 0)
except(NameError, ZeroDivisionError) as e:  # 捕获多个异常并打印出异常描述信息,e 是对这个异常的描述信息
    print(f'{type(e)}: {e}')

try:
    open('test2.txt', 'r')  # 这样能捕获所有异常信息,并打印出异常的描述信息
except Exception as e:
    print(e)
三、含else的异常捕获
try:
    print(1)
except Exception as e:
    print(e)
else:
    print("没有异常")  # 当程序没有异常时执行else里面的内容

try:
    f = open('test.txt', 'r')
except Exception as e:
    print(e)
    f = open('test.txt', 'w')
else:
    print("没有异常")
finally:
    f.close()
四、异常传递
# 需求1:尝试只读打开text.txt文件,若存在内容则读取内容,不存在内容则提示用户
# 需求2:读取内容:循环读取,当无内容的时候退出循环,如果用户意外之中,提示用户已经意外终止

import time

filename = "test.txt"
try:
    f = open(filename)
    try:
        while True:
            line = f.readline()
            time.sleep(3)
            if len(line) == 0:
                break
            print(line)
    except:
        # 在命令提示符中按下ctrl+C就可以制造《意外终止》
        print("程序被意外终止")
except:
    print("此文件不存在")
五、自定义异常
# 在Python中,抛出⾃定义异常的语法为 raise 异常类对象  。
# 需求:密码⻓度不⾜,则报异常(⽤户输⼊密码,如果输⼊的⻓度不⾜3位,则报错,
# 即抛出⾃定义异 常,并捕获该异常)。

# 自定义异常类,继承Exception
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}个字符'


def fun():
    try:
        con = input('请输入密码:')
        if len(con) < 6:
            raise ShortInputError(len(con), 6)
    except Exception as e:
        print(e)
    else:
        print('输入密码已完成')


fun()


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/739972.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号