python异常处理

在 Python 中,异常处理是通过 try、except、else 和 finally 语句来实现的。这些语句可以帮助你捕获和处理程序运行时发生的错误,以提高程序的稳定性和用户体验。

一:基础结构

python 复制代码
try:
    # 可能会引发异常的代码
except :
    print("异常")
else:
    #没有异常就执行代码
finally:
    #有没有异常都会执行的代码

一个简单的异常处理实现:

程序1

python 复制代码
程序1


input_str = input('输入数字')

try:
   input_int = int(input_str)
   
   print(f'你输入了{input_int,input_int2}')
   
except:
     print(f'异常',e)

 else:
     print(f'没有异常')

 finally:
     print(f'有无异常我都会执行')

print(f'函数正常结束')

输入一个数字,若它为数字则会输出输入的数字,若为不能转换的数据类型,就会返回异常

二:异常的类型

异常也分为好多类型:

except Exception as e: 未知异常,只要不满足以下异常,就满足这条异常

except TypeError as e: 类型转换异常

except ValueError as e: 值转换异常

except ZeroDivisionError as e: 为0异常

except FileNotFoundError as e: 找不到文件异常

三,自定义异常类

1.实现方式

定义一个类,使其继承 Exception 类

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

2.如何使用

在1中,定义了一个类,继承了Exception 类,它就有了Exception 类的异常性质

程序2

python 复制代码
程序2


while True:
    input_str = input('输入正整数')

    try:
        input_value = int(input_str)
        try:
            if input_value < 1:
                raise LTOne('输入数字小于1,请重新输入')
            # 手动加入自定义的异常类 raise
        except LTOne as e:
            print(e)
        else:
            print('奇数' if input_value % 2 else '偶数')


    except ValueError as e:
        print(f'输入内容不能转为数字,请重新输入')

在程序1述程序中,我们如果输入的值为0或者为负数,它也会报错

我们自定义了一个异常类,它有异常处理的方法和属性

使用 raise 自定义异常类名 (在其中输入出现异常时的输出)

这样通过进一步的完善,程序2就实现了更加完善的功能

相关推荐
沐晓时光6 小时前
C语言入门,内存函数知识讲解
c语言·开发语言
用户9562562542910 小时前
跟做:Firecrawl 单页转 Markdown 再丢进沙箱总结
python·api
威哥爱编程10 小时前
模拟面试智能体开发实战 02:回答等半分钟,谁还愿意练?把服务端和流式输出搭起来
python·agent·harmonyos
威哥爱编程11 小时前
模拟面试智能体开发实战 01:面试挂了都不知道挂在哪?用 Python 给自己造一个随叫随到的 AI 面试官
python·agent·harmonyos
2601_9679801111 小时前
Python行情API量化 02:顺序拉 20 要 2 秒?并发批量把时间压到 0.5 秒
python·api·限流·并发·量化
伞伞悦读11 小时前
【第81期】特征缩放怎么选:标准化、MinMax 与 Robust 的原理、泄漏对照和完整实验
人工智能·python·深度学习·机器学习
新*12 小时前
从一段 WebSocket 代码聊开:bytes 不是 zlib、binaryType 决定一切,15MB 大消息的零拷贝优化
javascript·python·websocket·性能优化·blob·zlib·arraybuffer
David猪大卫12 小时前
【C++修炼】map 和 set 的使用
c语言·开发语言·数据结构·c++·经验分享·笔记·学习
卷无止境14 小时前
mathmodel-figure-templates 以及两个上手案例
后端·python
fengci.14 小时前
CTF2MISC中等部分
开发语言·前端·学习