Python---异常的综合案例
☆ 异常的传递
需求:
① 尝试只读方式打开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}')
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!