python异常捕获

在Python中,异常捕获是通过tryexcept语句块来实现的。当你预见到某段代码可能会因为某些原因出错(比如除以0、文件不存在等)时,你可以使用try块来执行这段代码,并使用except块来捕获并处理可能发生的异常。

举个例子:

复制代码
str_i = input("请输入数字")
str_i2 = input("请输入数字")
try:
    # 进行类型转换
    i_int = int(str_i)
    i_int2 = int(str_i2)
    print(f"{i_int / i_int2}")
# 除数为0异常
except ZeroDivisionError as e:
    print(f"除数为0", e)
# 转换类型异常
except TypeError as e:
    print(f"类型异常", e)
# 值异常
except ValueError as e:
    print(f"值异常", e)
# 异常输出 Exception 捕获所有异常 范围过于宽泛
except Exception as e:
    print(f"转换失败", e)
# 没有异常执行
else:
    print(f"转换成功")
# 不管有没有异常都执行
finally:
    print(f"不关我事")

上述代码try后面是认为可能会出错的代码,except可以将异常进行捕获并输出,如果用户输入是数字切除数不为0,那么就会执行else,而finally 是不管有没有异常发生都会执行。

文件未找到异常:

复制代码
try:
    with open(f'123.txt','r') as f:
        print(f.read())
except FileNotFoundError as e:
    print(f"文件没有找到", e)
# 结果:文件没有找到 [Errno 2] No such file or directory: '123.txt'

自定义异常

复制代码
class LTOne(Exception):
    def __init__(self, msg):
        super().__init__(msg)


while True:
    i_str = input("请输入一个正整数")
    try:
        i_int = int(i_str)
        try:
            if i_int < 1:
                raise LTOne("数值小于1")
        except LTOne as e:
            print(f"输入的数字小于1,请重新输入")
        else:
            print(f"奇数" if i_int % 2 else "偶数")
    except ValueError as e:
        print(f"输入的不能转化为数字,请重新输入")

用户可以输入数字来判断奇偶数,这里我们自定义了一个类 LTOne ,当用户输入的数值小于0时,会将自定义的异常LTOne抛出,并输出 "输入的数字小于1,请重新输入"。

相关推荐
AC赳赳老秦3 分钟前
DeepSeek助力云原生AI降本:容器化部署资源优化与算力利用率提升技巧
网络·python·django·prompt·tornado·ai-native·deepseek
卓越软件开发3 分钟前
毕设全栈开发一条龙:Java/SpringBoot/Vue/ 小程序 / Python / 安卓 / AI 图像识别 人脸检测 车牌识别 YOLO
开发语言·spring boot·python·yolo·小程序·毕业设计·课程设计
甲枫叶3 分钟前
【claude+weelinking产品经理系列15】UI/UX 打磨——产品经理的审美终于能自己实现
java·人工智能·python·ui·产品经理·ai编程·ux
geovindu4 分钟前
python: Strategy Pattern
python·设计模式·策略模式
一叶之秋14127 分钟前
千面之法: 释放 C++ 多态的灵活威力
开发语言·c++
柒.梧.9 分钟前
Java拷贝精讲:彻底分清浅拷贝与深拷贝
java·开发语言·python
一晌小贪欢12 分钟前
PyQt5 实战:批量图片添加水印工具(带右侧实时预览)(附代码及下载链接)
开发语言·qt·添加水印·图片添加水印·蹄片水印
超绝振刀怪14 分钟前
【C++ vector】
开发语言·c++
少云清14 分钟前
【UI自动化测试】3_PO模式 _封装思想
python·ui·po模式
机器视觉的发动机15 分钟前
图像处理-机器视觉算法中的数学基础
开发语言·人工智能·算法·决策树·机器学习·视觉检测·机器视觉