当前位置: 首页 > news >正文

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,请重新输入"。


http://www.mrgr.cn/news/6295.html

相关文章:

  • 记录jenkins的一个错误
  • I2C软件模拟与Delay寄存器延迟函数
  • 2024河南萌新联赛第五场 C小美想收集(并查集拓展域,2-sat)
  • Python爬虫案例二:获取虎牙主播图片(动态网站)
  • Spring Boot实战:通过Spring Batch处理批量订单数据
  • UDP+TCP
  • 类别特征编码 ———特征工程
  • Unity 编辑器-UGUI拓展Button,一个和原Button一样按钮⭐
  • AI大模型日报#0820:DeepMind创始人访谈、阿里多模态mPLUG-Owl3、抱抱脸SOTA小模型
  • P1167 刷题
  • GIS空间数据库,基本概念
  • docker相关
  • 蛋托清洗机的优势特点以及维护和保养:
  • TCP的连接建立及报文段首部格式
  • Android CCodec Codec2 (三)C2Param - Ⅰ
  • C# Dictionary->ConcurrentDictionary和哈希表
  • 【速览】计算机网络(更新中)
  • 【Spring Boot】全局异常处理
  • 微信小程序:浮动按钮
  • jenkins 修改访问路径