Python异常处理详解:try, except, else, finally的使用方法与示例

news2024/11/26 18:23:08

在这里插入图片描述
💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
在这里插入图片描述

  • 推荐:「stormsha的主页」👈,「stormsha的知识库」👈持续学习,不断总结,共同进步,为了踏实,做好当下事儿~

  • 专栏导航

    • Python系列: Python面试题合集,剑指大厂
    • Git系列: Git操作技巧
    • GO系列: 记录博主学习GO语言的笔记,该笔记专栏尽量写的试用所有入门GO语言的初学者
    • 数据库系列: 详细总结了常用数据库 mysql 技术点,以及工作中遇到的 mysql 问题等
    • 运维系列: 总结好用的命令,高效开发
    • 算法与数据结构系列: 总结数据结构和算法,不同类型针对性训练,提升编程思维

    非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨

    💖The Start💖点点关注,收藏不迷路💖

    📒文章目录

        • 1. try
        • 2. except
          • 捕获特定类型的异常
          • 捕获所有异常
        • 3. else
        • 4. finally
        • 综合示例
        • 总结


在Python中,异常处理是一个非常重要的机制,用于捕获和处理运行时错误,从而防止程序崩溃。Python提供了try, except, elsefinally关键字来实现异常处理。下面是对这些关键字的详解:

1. try

try块用于包裹可能会引发异常的代码。当某个异常发生时,解释器会立即停止执行try块中的代码,并转到相应的except块进行处理。

try:
    # 可能会引发异常的代码
    result = 10 / 0

2. except

except块用于捕获和处理异常。你可以指定捕获特定类型的异常,也可以捕获所有类型的异常。

捕获特定类型的异常
try:
    result = 10 / 0
except ZeroDivisionError:
    print("除数不能为零")
捕获所有异常
try:
    result = 10 / 0
except Exception as e:
    print(f"出现异常: {e}")

3. else

else块在try块没有引发任何异常时执行。它通常用于包含那些在没有异常时应该执行的代码。

try:
    result = 10 / 2
except ZeroDivisionError:
    print("除数不能为零")
else:
    print(f"运算结果是:{result}")

4. finally

finally块中的代码无论是否发生异常都会执行。它通常用于清理资源,如关闭文件或网络连接。

try:
    result = 10 / 2
except ZeroDivisionError:
    print("除数不能为零")
else:
    print(f"运算结果是:{result}")
finally:
    print("执行完毕,无论是否有异常")

综合示例

下面是一个综合使用try, except, elsefinally的示例:

def divide(a, b):
    try:
        result = a / b
    except ZeroDivisionError:
        print("除数不能为零")
    except TypeError:
        print("操作数必须是数字")
    else:
        print(f"运算结果是:{result}")
    finally:
        print("执行完毕,无论是否有异常")

divide(10, 2)
divide(10, 0)
divide(10, "a")

输出结果:

运算结果是:5.0
执行完毕,无论是否有异常
除数不能为零
执行完毕,无论是否有异常
操作数必须是数字
执行完毕,无论是否有异常

总结

  • try: 包裹可能会引发异常的代码。
  • except: 捕获和处理异常。
  • else: 在没有异常时执行。
  • finally: 无论是否发生异常都会执行,用于清理资源。

利用这些关键字,你可以编写更加健壮和容错的Python代码。


🔥🔥🔥道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

💖The End💖点点关注,收藏不迷路💖

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2204825.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PRAI-International Journal of Pattern Recognition and Artificial Intelligence

文章目录 一、征稿简介二、重要信息三、服务简述四、投稿须知五、联系咨询 一、征稿简介 二、重要信息 期刊官网:https://ais.cn/u/3eEJNv 三、服务简述 模式识别 • 机器学习 • 深度学习 • 文件分析 • 图像处理 • 信号处理 • 计算机视觉 • 生物识别技术 •…

Windows电脑本地安装AI文生音乐软件结合内网穿透远程访问制作

文章目录 前言1. 本地部署2. 使用方法介绍3. 内网穿透工具下载安装4. 配置公网地址5. 配置固定公网地址 前言 今天和大家分享一下在Windows系统电脑上本地快速部署一个文字生成音乐的AI创作服务MusicGPT,并结合cpolar内网穿透工具实现随时随地远程访问使用进行AI音…

上课了!老谭带你学习Ascend C,深入浅出,轻松掌握~

昇腾社区课程学习入口: Ascend C算子开发(入门)https://www.hiascend.com/developer/courses/detail/1691696509765107713Ascend C算子开发(进阶)https://www.hiascend.com/zh/developer/courses/detail/169641460679…

找出n个自然数(1,2,3,……,n)中取r个数的组合。

题目:找出n个自然数(1,2,3,……,n)中取r个数的组合。例如,当n5,r3时,所有的组合为: 1 2 3 1 2 4 1 2 5 1 3 4 1 3 5 1 4 5 2 3 4 2 3 5 2 4 5 3 4 5 首先,找到…

【Golang】Go多线程中数据不一致问题解决方案--sync锁机制

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…

AI工程师:AI时代的新岗位

从数量上看,AI工程师的数量可能比机器学习工程师/LLM工程师的数量要多得多。一个人可以非常成功地胜任这个角色,而无需接受任何培训。 —— Andrej Karpathy 仅初创公司的收入就超过 10 亿美元,随着 Gen AI 的早期成功迹象,每家有…

The current Windows user is not valid for executing Rabbitmq scripts

问题描述 在New Configuration或者Join host 配置的时候,执行配置信息报错如下 原因分析 可能的原因有如下两点 Cookie没有正确分配给当前用户这台机器是克隆来的,而且改了机器名 问题解决 要解决这个问题,需要卸载Erlang和RabbitMQ并重新安…

大数据-164 Apache Kylin Cube优化 案例1 定义衍生维度与对比 超详细

点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…

中国数据库产业图谱(2024)

全图下载地址: 中国数据库产业图谱(2024)

雾霾下雨天气户外人像街景拍摄Lr后期调色,手机滤镜PS+Lightroom预设下载!

调色详情 在雾霾下雨天气下拍摄的户外人像街景往往具有一种独特的氛围。通过 Lightroom 进行后期调色,可以进一步强化这种氛围,使照片更加富有情感和艺术感。 预设信息 调色风格:灰调风格预设适合类型:人像,雾霾&am…

Xcode报错:Undefined symbols,Linker command failed with exit code1

这种编译报错点击Xcode左侧的小红叉这两行点击没反应,不知道具体报错原因怎么弄? 解决办法: 第一步:点周Xcode左侧工具栏的编译log日志按钮 第二步:第一步点击完Xcode左侧出现了编译历史列表,可以看到有报…

如何使用selenium结合最新版chrome爬虫

如何使用selenium结合最新版chrome爬虫 1、下载chrome及其插件chromedriver-win64 点我下载 [百度网盘] 通过百度网盘分享的文件:chrome爬虫插件 链接:https://pan.baidu.com/s/1kqkblX_ordZsQNYR234bMg 提取码:8888 下载后,解压安装。 2、配置电脑系统环境 我的电脑-…

Cocos 2 使用 webview 嵌入页面,摄像头调用没权限问题

Cocos 2 使用 webview 嵌入页面,摄像头调用没权限问题 嗯,这么说呢,这篇博文看自己的实际需求哈,标题写的可能不是很准确。 我这边呢,是遇到这样一个功能,就是有一个服务,他是的页面呢&#xff…

CentOS7离线安装gcc和gcc-c++(亲测成功)

1.点击下载安装包(下载下来的是gz文件,在linux环境下解压) 提取码:1111 2.进入gcc_rpm目录,执行安装命令 cd gcc_rpm/rpm -ivh *.rpm --nodeps --force3.验证gcc是否安装成功 gcc -v安装gcc-c 1.进入 gcc-c 文件件目录下 cd ../gcc-c/…

高校党费收缴系统小程序的设计

管理员账户功能包括:系统首页,个人中心,管理员管理,党费收缴管理,论坛信息管理,新闻动态管理,公告管理,基础数据管理 微信端账号功能包括:系统首页,公告&…

【刷题】数组中的逆序对

题目链接:. - 力扣(LeetCode). - 备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/shu-zu-zhong-de-ni-xu-dui-lcof/submissions/571…

嵌入式硬件设计:从原理到实践

嵌入式硬件设计:从原理到实践 嵌入式硬件设计在物联网、智能设备、工业自动化等领域中扮演着至关重要的角色。随着技术的发展,越来越多的设备依赖于嵌入式系统进行实时控制与数据处理。本文将详细介绍嵌入式硬件设计的各个方面,从设计原理到…

Transformer细节问题

一、Transformer 以下是Transformer的一些重要组成部分和特点: 自注意力机制(Self-Attention):这是Transformer的核心概念之一,它使模型能够同时考虑输入序列中的所有位置,而不是像循环神经网络&#xff…

成都睿明智科技有限公司正规吗怎么样?

在数字经济的浪潮中,抖音电商以其独特的内容生态和庞大的用户基础,正逐步成为商家们竞相布局的新蓝海。而在这场电商变革的浪潮中,成都睿明智科技有限公司以其专业的服务和敏锐的市场洞察力,成为了众多商家信赖的合作伙伴&#xf…

QAbstractTableModel只有refresh才能调动data()更新表格数据

void refresh() { beginResetModel(); endResetModel(); } QVariant data(const QModelIndex &index, int role) const