百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

Python异常处理全攻略:从入门到精通,轻松应对代码“翻车”时刻

off999 2025-05-08 20:47 37 浏览 0 评论

喜欢的条友记得关注、点赞、转发、收藏,你们的支持就是我最大的动力源泉。

引言:异常处理——代码世界的“保险丝”

在编程的世界里,错误和异常就像路上的“坑”,稍不留神就会让你的程序“翻车”。而异常处理,就是为你的代码安装的“保险丝”,它能在关键时刻保护你的程序不至于崩溃。无论你是Python新手,还是资深开发者,本文将带你从零开始,深入探索Python异常处理的奥秘,从入门到精通,轻松应对代码中的“翻车”时刻!


一、异常处理简介:为什么需要它?

1.1 什么是异常?

异常是程序运行时发生的错误事件,它会中断程序的正常执行流程。例如,除以零、访问不存在的文件、类型错误等都会引发异常。

1.2 异常处理的重要性

  • 提高程序健壮性:避免程序因异常而崩溃。
  • 增强用户体验:通过友好的错误提示,提升用户体验。
  • 便于调试:捕获异常并记录日志,便于排查问题。

二、Python异常处理入门:从基础到实践

2.1 基本语法

Python使用try-except语句来捕获和处理异常:

try:
    # 可能引发异常的代码
    result = 10 / 0
except ZeroDivisionError:
    # 处理异常
    print("不能除以零!")

2.2 捕获多个异常

可以捕获多个异常,并分别处理:

try:
    # 可能引发异常的代码
    result = 10 / 0
except ZeroDivisionError:
    print("不能除以零!")
except TypeError:
    print("类型错误!")

2.3 捕获所有异常

使用except捕获所有异常:

try:
    # 可能引发异常的代码
    result = 10 / 0
except Exception as e:
    print(f"发生异常:{e}")

2.4else和finally

  • else:当没有异常发生时执行。
  • finally:无论是否发生异常,都会执行。
try:
    result = 10 / 2
except ZeroDivisionError:
    print("不能除以零!")
else:
    print(f"计算结果:{result}")
finally:
    print("执行完毕!")

三、Python异常处理进阶:掌握高级技巧

3.1 自定义异常

通过继承Exception类,可以自定义异常:

class MyCustomError(Exception):
    pass

try:
    raise MyCustomError("这是一个自定义异常!")
except MyCustomError as e:
    print(e)

3.2 异常链

使用raise from将异常链起来,保留原始异常的上下文:

try:
    result = 10 / 0
except ZeroDivisionError as e:
    raise ValueError("无效的操作") from e

3.3 上下文管理器与with语句

with语句可以自动处理资源的获取和释放,避免资源泄漏:

try:
    with open('example.txt', 'r') as file:
        content = file.read()
except FileNotFoundError:
    print("文件未找到!")

四、Python异常处理高级技巧:从精通到实战

4.1 使用logging记录异常

将异常信息记录到日志中,便于后续排查:

import logging

logging.basicConfig(filename='app.log', level=logging.ERROR)

try:
    result = 10 / 0
except ZeroDivisionError as e:
    logging.error(f"发生异常:{e}")

4.2 重试机制

在捕获异常后,可以尝试重试操作:

import time

retries = 3
for i in range(retries):
    try:
        result = 10 / 0
        break
    except ZeroDivisionError:
        print(f"重试 {i + 1} 次...")
        time.sleep(1)
else:
    print("操作失败!")

4.3 异常处理的最佳实践

  • 明确捕获异常:避免捕获所有异常,明确捕获特定异常。
  • 记录异常信息:使用日志记录异常,便于排查问题。
  • 资源清理:使用finally或with语句确保资源释放。

五、实战案例:构建一个健壮的文件处理程序

5.1 需求分析

  • 读取一个文件的内容。
  • 处理文件读取过程中可能发生的异常(如文件不存在、权限不足等)。
  • 记录异常信息到日志中。

5.2 实现步骤

  1. 使用try-except捕获文件读取过程中的异常。
  2. 使用logging记录异常信息。
  3. 使用finally确保文件关闭。

5.3 完整代码

import logging

logging.basicConfig(filename='app.log', level=logging.ERROR, encoding="utf-8")

def read_file(file_path):
    try:
        with open(file_path, 'r') as file:
            content = file.read()
            print(content)
    except FileNotFoundError:
        logging.error(f"文件未找到:{file_path}")
    except PermissionError:
        logging.error(f"权限不足:{file_path}")
    except Exception as e:
        logging.error(f"发生异常:{e}")
    finally:
        print("文件处理完毕!")

read_file('example.txt')

六、总结:异常处理——代码的“守护神”

通过本文的学习,你已经掌握了Python异常处理的从入门到精通的全部技巧!无论是基础的try-except语句,还是高级的自定义异常和日志记录,这些技巧都能帮助你写出更健壮、更可靠的代码。赶快动手试试吧,让你的代码在“翻车”时刻也能从容应对!

喜欢的条友记得关注、点赞、转发、收藏,你们的支持就是我最大的动力源泉。

相关推荐

安全教育登录入口平台(安全教育登录入口平台官网)

122交通安全教育怎么登录:122交通网的注册方法是首先登录网址http://www.122.cn/,接着打开网页后,点击右上角的“个人登录”;其次进入邮箱注册,然后进入到注册页面,输入相关信息即可完...

大鱼吃小鱼经典版(大鱼吃小鱼经典版(经典版)官方版)

大鱼吃小鱼小鱼吃虾是于谦跟郭麒麟的《我的棒儿呢?》郭德纲说于思洋郭麒麟作诗的相声,最后郭麒麟做了一首,师傅躺在师母身上大鱼吃小鱼小鱼吃虾虾吃水水落石出师傅压师娘师娘压床床压地地动山摇。...

谷歌地球下载高清卫星地图(谷歌地球地图下载器)
  • 谷歌地球下载高清卫星地图(谷歌地球地图下载器)
  • 谷歌地球下载高清卫星地图(谷歌地球地图下载器)
  • 谷歌地球下载高清卫星地图(谷歌地球地图下载器)
  • 谷歌地球下载高清卫星地图(谷歌地球地图下载器)
哪个软件可以免费pdf转ppt(免费的pdf转ppt软件哪个好)
哪个软件可以免费pdf转ppt(免费的pdf转ppt软件哪个好)

要想将ppt免费转换为pdf的话,我们建议大家可以下一个那个wps,如果你是会员的话,可以注册为会员,这样的话,在wps里面的话,就可以免费将ppt呢转换为pdfpdf之后呢,我们就可以直接使用,不需要去直接不需要去另外保存,为什么格式转...

2026-02-04 09:03 off999

电信宽带测速官网入口(电信宽带测速官网入口app)

这个网站看看http://www.swok.cn/pcindex.jsp1.登录中国电信网上营业厅,宽带光纤,贴心服务,宽带测速2.下载第三方软件,如360等。进行在线测速进行宽带测速时,尽...

植物大战僵尸95版手机下载(植物大战僵尸95 版下载)

1可以在应用商店或者游戏平台上下载植物大战僵尸95版手机游戏。2下载教程:打开应用商店或者游戏平台,搜索“植物大战僵尸95版”,找到游戏后点击下载按钮,等待下载完成即可安装并开始游戏。3注意:确...

免费下载ppt成品的网站(ppt成品免费下载的网站有哪些)

1、Chuangkit(chuangkit.com)直达地址:chuangkit.com2、Woodo幻灯片(woodo.cn)直达链接:woodo.cn3、OfficePlus(officeplu...

2025世界杯赛程表(2025世界杯在哪个国家)

2022年卡塔尔世界杯赛程公布,全部比赛在卡塔尔境内8座球场举行,2022年,决赛阶段球队全部确定。揭幕战于当地时间11月20日19时进行,由东道主卡塔尔对阵厄瓜多尔,决赛于当地时间12月18日...

下载搜狐视频电视剧(搜狐电视剧下载安装)

搜狐视频APP下载好的视频想要导出到手机相册里方法如下1、打开手机搜狐视频软件,进入搜狐视频后我们点击右上角的“查找”,找到自已喜欢的视频。2、在“浏览器页面搜索”窗口中,输入要下载的视频的名称,然后...

pubg免费下载入口(pubg下载入口官方正版)
  • pubg免费下载入口(pubg下载入口官方正版)
  • pubg免费下载入口(pubg下载入口官方正版)
  • pubg免费下载入口(pubg下载入口官方正版)
  • pubg免费下载入口(pubg下载入口官方正版)
永久免费听歌网站(丫丫音乐网)

可以到《我爱音乐网》《好听音乐网》《一听音乐网》《YYMP3音乐网》还可以到《九天音乐网》永久免费听歌软件有酷狗音乐和天猫精灵,以前要跳舞经常要下载舞曲,我从QQ上找不到舞曲下载就从酷狗音乐上找,大多...

音乐格式转换mp3软件(音乐格式转换器免费版)

有两种方法:方法一在手机上操作:1、进入手机中的文件管理。2、在其中选择“音乐”,将显示出手机中的全部音乐。3、点击“全选”,选中所有音乐文件。4、点击屏幕右下方的省略号图标,在弹出菜单中选择“...

电子书txt下载(免费的最全的小说阅读器)

1.Z-library里面收录了近千万本电子书籍,需求量大。2.苦瓜书盘没有广告,不需要账号注册,使用起来非常简单,直接搜索预览下载即可。3.鸠摩搜书整体风格简洁清晰,书籍资源丰富。4.亚马逊图书书籍...

最好免费观看高清电影(播放免费的最好看的电影)

在目前的网上选择中,IMDb(互联网电影数据库)被认为是最全的电影网站之一。这个网站提供了各种类型的电影和电视节目的海量信息,包括剧情介绍、演员表、评价、评论等。其还提供了有关电影制作背后的详细信息,...

孤单枪手2简体中文版(孤单枪手2简体中文版官方下载)

要将《孤胆枪手2》游戏的征兵秘籍切换为中文,您可以按照以下步骤进行操作:首先,打开游戏设置选项,通常可以在游戏主菜单或游戏内部找到。然后,寻找语言选项或界面选项,点击进入。在语言选项中,选择中文作为游...

取消回复欢迎 发表评论: