Python异常处理

ops/2025/1/16 3:33:51/

在Python中,异常处理是一种重要的编程结构,它允许你在代码运行时检测并响应错误或异常情况。异常处理使得程序在遇到错误时能够优雅地处理这些错误,而不是直接崩溃或终止执行。

下面是根据代码示例来说明:

python">input_str1 = input("输入数字1:")
input_str2 = input("输入数字2:")
try:input_value1 = int(input_str1)input_value2 = int(input_str2)print(f"输入的数字1是:{input_value1}")print(f"输入的数字2是:{input_value2}")print(f"数字1除以数字2的结果为:{input_value1 / input_value2}")
except ValueError as e:print(f"数值异常", e)
except TypeError as e:print(f"类型异常", e)
except ZeroDivisionError as e:print(f"除数为零异常", e)
except Exception as e:print(f"未知异常", e)
else:print(f"没有发现异常")
finally:print(f"有没有异常都会执行")
print("程序正常结束")

常见的异常有 ValueError TypeError ZeroDivisionError Exception(可以捕获所有异常,但不提示是什么类型的异常)

try 语句按照如下方式工作:

  • 首先,执行 try 子句(在关键字 try 和关键字 except 之间的语句)。

  • 如果没有异常发生,忽略 except 子句,try 子句执行后结束。

  • 如果在执行 try 子句的过程中发生了异常,那么 try 子句余下的部分将被忽略。如果异常的类型和 except 之后的名称相符,那么对应的 except 子句将被执行。

如果input_str1或input_str2不为数字,会触发ValueError,如果input_str2为0,会触发除ZeroDivisionError。其中else语句在没有触发异常时才执行,finally语句有没有触发异常都会执行。

特别的,用户还可以自定义异常处理:

python">class LTOne(Exception):def __init__(self, msg):super().__init__(msg)while True:input_str = input("输入一个正整数:")# 这个try except 用来捕获强转为整型时的异常try:input_value = int(input_str)# 这个try except 用来捕获用户自定义的数值小于1的异常try:if input_value < 1:# 抛出异常,并自定义提示信息raise LTOne("输入数值小于1")except LTOne as e:print(f"触发用户自定义LTOne异常", e)breakexcept ValueError as e:print(f"数值异常", e)break


http://www.ppmy.cn/ops/97873.html

相关文章

分析 Runtime.getRuntime() 执行阻塞原因

1、起因 线上系统通过 git 命令执行的方式获取远程仓库分支&#xff0c;一直运行正常的接口&#xff0c;突然出现超时&#xff0c;接口无法响应&#xff0c;分析验证发现只有个别仓库获取分支会出现这种情况&#xff0c;其他都还是可以正常获取到分支结果信息。 2、分析异常原…

功能测试和性能测试区别简析,软件测试公司如何开展有效测试?

软件功能测试旨在验证软件是否按照需求和设计规范正常运行&#xff0c;软件性能测试则是用来评估软件在特定负载条件下的行为和响应时间&#xff0c;确保软件在高并发和高需求的环境中能够稳定运行。 虽然两者都属于软件测试的重要组成部分&#xff0c;但它们的目的和重点却有…

Java学习Day31:HTML 第一章:观音禅院

1.结构介绍 1.标签的分类 <单词> &#xff1a;元素标签 <元素 单词>&#xff1a;首先<>中至少有两个单词&#xff0c;那第一个肯定是元素标签&#xff0c;元素标签后跟的都是属性标签 2.文本元素 段落元素 段落元素 换行标签 br 水平线标签 标签会在页面…

AndroidStudio最新版各个repositories下载失败

如下图&#xff0c;各个仓库都是下载失败&#xff0c;网络是有oversea的访问的&#xff0c;不行&#xff0c;我给AndroidStudio网络代理到oversea也不能下载&#xff0c;就很奇怪&#xff0c;就像是AndroidStudio强行把网络访问给墙了 原来Settings.Gradle的配置如下&#xff0…

设计模式 - 软件设计原则(第三章)

目录 3&#xff0c;软件设计原则 3.1 开闭原则 3.2 里氏代换原则 3.3 依赖倒转原则 3.4 接口隔离原则 3.5 迪米特法则 3.6 合成复用原则 3、软件设计原则 在软件开发中&#xff0c;为了提高软件系统的可维护性和可复用性&#xff0c;增加软件的可扩展性和灵活性&#x…

CSS方向选择的艺术:深入探索:horizontal和:vertical伪类

CSS&#xff08;层叠样式表&#xff09;是构建网页视觉表现的核心工具。随着CSS规范的不断更新&#xff0c;我们拥有了更多的选择器来精确控制网页元素的样式。其中&#xff0c;:horizontal和:vertical伪类是CSS Level 4中引入的两个实验性选择器&#xff0c;它们允许开发者根据…

ip归属地换地方了会自动更新吗

在这个数字化时代&#xff0c;互联网已成为我们生活、工作和学习中不可或缺的一部分。而每一个连接互联网的设备&#xff0c;都会通过其IP地址与外界进行通信。IP地址&#xff0c;这个看似简单的数字组合&#xff0c;实则承载着设备位置、网络身份等重要信息。随着人们移动性的…

Spire.PDF for .NET【文档操作】演示:创建 PDF 组合

PDF 作品集是一组文件&#xff0c;其中可以包含文本文档、电子表格、电子邮件、图像、PowerPoint 演示文稿和绘图。尽管 PDF 作品集将不同类型的文件组合成一个单元&#xff0c;但其中的每个文件都保留了其原始格式、分辨率和大小。在本文中&#xff0c;您将学习如何使用Spire.…