Python---异常的综合案例

2023-12-13 13:42:55

☆ 异常的传递

需求:

① 尝试只读方式打开python.txt文件,如果文件存在则读取文件内容,文件不存在则提示用户即可。

② 读取内容要求:尝试循环读取内容,读取过程中如果检测到用户意外终止程序,则except捕获


import time

try:
? ?f = open('python.txt', 'r')
? ?try:
? ? ? ?while True:
? ? ? ? ? ?content = f.readline()
? ? ? ? ? ?if len(content) == 0:
? ? ? ? ? ? ? ?break
? ? ? ? ? ?time.sleep(3)
? ? ? ? ? ?print(content, end='')
? ?except:
? ? ? ?# Ctrl + C(终端里面,其代表终止程序的继续执行)
? ? ? ?print('python.txt未全部读取完成,中断了...')
? ?finally:
? ? ? ?f.close()
except:
? ?print('python.txt文件未找到...')


☆ raise抛出自定义异常

在Python中,抛出自定义异常的语法为raise 异常类对象

需求:密码长度不足,则报异常(用户输入密码,如果输入的长度不足6位,则报错,即抛出自定义异常,并捕获该异常)。

原生方法:


def input_password():
? ? password = input('请输入您的密码,不少于6位:')
? ? if len(password) < 6:
? ? ? ? # 抛出异常
? ? ? ? raise Exception('您的密码长度少于6位')
? ? ? ? return
? ? # 如果密码长度正常,则直接显示密码
? ? print(password)
? ? ? ??
input_password()


面向对象抛出自定义异常:


class ShortInputError(Exception):
? ? # length代表输入密码长度,min_length代表ShortInputError最小长度
? ? def __init__(self, length, min_length):
? ? ? ? self.length = length
? ? ? ? self.min_length = min_length

? ? # 定义一个__str__方法,用于输出字符串信息
? ? def __str__(self):
? ? ? ? return f'您输入的密码长度为{self.length},不能少于{self.min_length}个字符'

try:
? ? password = input('请输入您的密码,不少于6位:')
? ? if len(password) < 6:
? ? ? ? raise ShortInputError(len(password), 6)
except Exception as e:
? ? print(e)
else:
? ? print(f'密码输入完成,您的密码是:{password}')


文章来源:https://blog.csdn.net/qq_42755734/article/details/134894405
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。