news 2026/4/26 14:42:30

Python中的异常处理

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python中的异常处理

异常

""" 异常(Exception): 1.什么是异常? python运行时,发生的错误,而导致程序最终无法执行,异常! 思考:有没有出现错误? 编译过程中的错误,红色波浪线 运行过程中的错误,编译通过,但是运行之后报错 补充: 特性:运行时发生红色的错误,终止程序 异常的父类:BaseException 2.如何处理异常? try: 可能会出现问题的代码 except [抓取异常的类型 as e]: 处理的结果 """

示例

#异常示例#1 分母不能为0print("运行前")try:res=10/0#ZeroDivisionErrorprint(res)exceptZeroDivisionErrorase:print(e)print("运行后")#运行结果运行前 division by zero 运行后#2 文件不存在try:withopen("../exception/a.txt","r",encoding="utf-8")asf:print(f.read())exceptFileNotFoundErrorase:print(e)print("读取后")#运行结果[Errno2]No suchfileordirectory:'../exception/a.txt'读取后#3 转换异常str1="zhangsan"try:res=int(str1)exceptValueErrorase:print(e)print("转换后")#运行结果invalid literalforint()withbase10:'zhangsan'转换后

处理异常

""" 处理异常 1.异常的复杂格式 try: 可能会出现问题的代码 except [抓取异常类型 as 别名]: 处理代码 [else: 没有发生异常处理的代码 finally: 作用:一般用来关闭文件或者释放资源的 异常的处理出口 ] 2.合并处理异常 -了解 try: 异常代码 except (异常1,异常2,异常3......异常n) as e: 3.处理多级异常 注意: except可以写多个,分别抓取不同的异常信息 一般情况下,异常处理的对象(范围越小,异常信息更准确)越小越好 父异常一般写在子异常之后 """

异常的复杂格式

#1 案例:处理文件异常f=Nonetry:f=open('test.txt',"r",encoding="utf-8")res=f.read()print(res)exceptExceptionase:print("文件找不到")else:print("当前正常")finally:print("程序正在执行finally块")iffisnotNone:#在写finally时需要加判断f.close()

合并处理异常

#2 合并异常格式try:res=10/0#division by zerores2=int("lisi")#ValueErrorexcept(ZeroDivisionError,ValueError)ase:print(e)

多个异常处理

#3 多个异常处理#案例:读取文件内容,转换为int,再除以0try:f=open('test.txt',"r",encoding="utf-8")res=int(f.read())res=res/0print(res)exceptFileNotFoundErrorase:print(e)exceptValueErrorase:print(e)exceptZeroDivisionErrorase:print(e)exceptExceptionase:print(f"不可预估的错误{e}")

案例——自定义异常

""" 异常实现登录案例 !!!自行抛出异常时,需要使用raise """
#自定义异常classMyException(Exception):msg=""def__init__(self,msg):self.msg=msg#模拟数据库的用户数据username_mysql="zhangsan"password_mysql="123"deflogin(username,password):#1 用户名是否存在ifusername_mysql!=username:#抛出一个自定义异常raiseMyException("用户不存在")#2.密码是否准确ifusername==username_mysqlandpassword!=password_mysql:raiseMyException("密码错误")#3 是否登录成功returnTrueif__name__=='__main__':username=input("username: ")password=input("password: ")try:login(username,password)exceptExceptionase:print(e)else:print("ok")

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/19 19:15:00

针对Grok接入美国军方奇点先生分析后给出了三封公开信

X54先生抛出观点: 按人工智能底层是设计不得伤害人类,用在军事不就等于让人工智能给出伤害他国最佳方案吗,他国的人类就不是人类吗?今天可以给出威慑他国方案,明天人工智能就会自己得出结论只要为目标也可以伤害非控制…

作者头像 李华
网站建设 2026/4/23 13:59:02

深度测评自考必备AI论文平台TOP9:选对工具轻松过关

深度测评自考必备AI论文平台TOP9:选对工具轻松过关 2026年自考论文写作工具测评:选对AI平台,提升效率更关键 随着自考人数逐年增长,论文写作成为众多考生面临的“拦路虎”。从选题构思到资料搜集,再到内容撰写与格式调…

作者头像 李华
网站建设 2026/4/25 8:51:01

淘宝 API 生态入门:以商品详情接口为例的平台集成指南

在电商数字化运营的大背景下,淘宝平台提供的 API 接口成为开发者对接淘宝生态、实现商品数据获取、订单管理等核心功能的关键通道。你作为开发者,无论是搭建电商数据分析工具、开发第三方电商管理系统,还是实现自有平台与淘宝的商品数据打通&…

作者头像 李华