Python 异常处理:try、except、else 和 finally 的使用指南

news2024/11/26 16:31:09

异常处理

当发生错误(或我们称之为异常)时,Python 通常会停止执行并生成错误消息。

try 块用于测试一段代码是否存在错误。

except 块用于处理错误。

else 块用于在没有错误时执行代码。

finally 块用于无论 tryexcept 块的结果如何都要执行的代码。

可以使用 try 语句来处理这些异常:

try:
  print(x)
except:
  print("发生了一个异常")

由于 try 块引发了一个错误,因此将执行 except 块。

如果没有 try 块,程序将崩溃并引发错误:

print(x)

多个异常

您可以定义尽可能多的异常块,例如,如果要为特定类型的错误执行特殊的代码块:

try:
  print(x)
except NameError:
  print("变量 x 未定义")
except:
  print("其他错误")

else

您可以使用 else 关键字来定义一段代码,该代码块将在没有错误引发时执行:

try:
  print("Hello")
except:
  print("出现了错误")
else:
  print("没有出错")

finally

如果指定了 finally 块,不管 try 块是否引发错误,都将执行该块:

try:
  print(x)
except:
  print("发生了错误")
finally:
  print("'try except' 完成了")

这对于关闭对象和清理资源非常有用:

try:
  f = open("demofile.txt")
  try:
    f.write("Lorum Ipsum")
  except:
    print("写入文件时出错")
  finally:
    f.close()
except:
  print("打开文件时出错")

程序可以继续运行,而不会保持文件对象处于打开状态。

引发异常

作为 Python 开发人员,您可以选择在发生条件时引发异常。

要引发(或触发)异常,请使用 raise 关键字。

x = -1

if x < 0:
  raise Exception("抱歉,不能小于零")

raise 关键字用于引发异常。

您可以定义要引发的错误类型以及要显示给用户的文本:

x = "hello"

if not type(x) is int:
  raise TypeError("只允许整数")

最后

为了方便其他设备和平台的小伙伴观看往期文章:公众号搜索Let us Coding,或者扫描下方二维码,关注公众号,即可获取最新文章。

看完如果觉得有帮助,欢迎点赞、收藏关注

在这里插入图片描述

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

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

相关文章

vivado生成bit流错误---[DRC UCIO-1]

拿着开发板的例程&#xff0c;只修改了FPGA芯片&#xff0c;FPGA芯片是同一系列的。运行编译产生bit流出现如下错误 [DRC UCIO-1] Unconstrained Logical Port: 20 out of 22 logical ports have no user assigned specific location constraint (LOC). This may cause I/O con…

U盘显示无媒体怎么办?方法很简单

当出现U盘无媒体情况时&#xff0c;您可以在磁盘管理工具中看到一个空白的磁盘框&#xff0c;并且在文件资源管理器中不会显示出来。那么&#xff0c;导致这种问题的原因是什么呢&#xff1f;我们又该怎么解决呢&#xff1f; 导致U盘无媒体的原因是什么&#xff1f; 当您遇到上…

基于SSM的防疫信息登记系统设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

【WinForm详细教程七】WinForm中的DataGridView控件

文章目录 1.主要属性DataSource行&#xff08;Row 相关属性&#xff09;列&#xff08;Column 相关属性&#xff09;单元格&#xff08;Cell 相关属性&#xff09;逻辑删除AllowUserToAddRowsAllowUserToDeleteRowsAllowUserToOrderColumns其他布局和行为属性 2.控件中的行、列…

昨天面了个哥们,也就问了4个问题,但好像他被我虐了···

公司最近在招自动化测试岗&#xff0c;居然一天内就收了几百份简历&#xff01;想不到吧&#xff1f;&#xff01;都快面吐了&#xff0c;想招一个合适的技术同学太不容易了&#xff0c;需要去挖的细节太多了。一般来说&#xff0c;很多人都会被问接口工具、aap自动化、测试框架…

Docker Swarm实现容器的复制均衡及动态管理:详细过程版

Swarm简介 Swarm是一套较为简单的工具&#xff0c;用以管理Docker集群&#xff0c;使得Docker集群暴露给用户时相当于一个虚拟的整体。Swarm使用标准的Docker API接口作为其前端访问入口&#xff0c;换言之&#xff0c;各种形式的Docker Client(dockerclient in go, docker_py…

YOLO算法改进6【中阶改进篇】:depthwise separable convolution轻量化C3

常规卷积操作 对于一张55像素、三通道&#xff08;shape为553&#xff09;&#xff0c;经过33卷积核的卷积层&#xff08;假设输出通道数为4&#xff0c;则卷积核shape为3334&#xff0c;最终输出4个Feature Map&#xff0c;如果有same padding则尺寸与输入层相同&#xff08;…

基于设深度学习的人脸性别年龄识别系统 计算机竞赛

文章目录 0 前言1 课题描述2 实现效果3 算法实现原理3.1 数据集3.2 深度学习识别算法3.3 特征提取主干网络3.4 总体实现流程 4 具体实现4.1 预训练数据格式4.2 部分实现代码 5 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 基于深度学习机器视觉的…

R语言657中单色colors颜色索引表---全平台可用

R语言657中单色colors颜色索引表—全平台可用

记一次pdjs时安装glob出现,npm ERR! code ETARGET和npm ERR! code ELIFECYCLE

如往常一样&#xff0c;我使用pdjs来编译proto文件&#xff0c;但出现了以下报错&#xff1a; 大致就是pdjs的util在尝试执行npm install glob^7.2.1 escodegen^1.13.0时出错了 尝试手动执行安装&#xff0c;escodegen被正确安装&#xff0c;但glob^7.2.1出错 npm ERR! code E…

Adobe:受益于人工智能,必被人工智能反噬

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 总结&#xff1a; &#xff08;1&#xff09;Adobe(ADBE)受益于生成式人工智能的兴起&#xff0c;其一直能实现两位数的收入增长就证明了这一点。 &#xff08;2&#xff09;在生成式人工智能兴起时&#xff0c;该公司就快…

苏州景点梳理(含交通方式)

第一优先级第二优先级 区域名称备注交通需预约/费用市区&#xff1a;苏州博物馆周一闭馆地铁预约拙政园包含太平天国忠王府地铁预约&#xff0c;收费狮子林地铁预约&#xff0c;收费苏州博物馆(西馆)地铁预约北寺塔地铁七里山塘&#xff08;山塘街&#xff09;石路商圈吃饭地铁…

orangepi one nfs启动

先制作好启动tf卡&#xff0c;之后为了快速调试&#xff0c;可以通过nfs替换内核与设备树&#xff0c;无需重新制作启动tf卡。 开发板需要连接网线&#xff0c;uboot默认的网卡驱动在orangepi one上是可以使用的。 下面是nfs启动的步骤&#xff1a; 1、启动开发版&#xff0…

如何解决el-dialog弹窗上面有一层黑色蒙层?

这种情况百分之90%是因为弹窗嵌套弹窗造成的&#xff0c;我遇到的情况是这样的&#xff0c;解决方法是给内层el-dialog加上append-to-body属性&#xff0c;下面是简化后的示例 <el-dialog title"外层 Dialog" :visible.sync"outerVisible"><el-d…

Adobe acrobat 11.0版本 pdf阅读器修改背景颜色方法

打开菜单栏&#xff0c;编辑&#xff0c;首选项&#xff0c;选择辅助工具项&#xff0c;页面中 勾选 替换文档颜色&#xff0c;页面背景自己选择一个颜色&#xff0c;然后确定&#xff0c;即可&#xff01;

CentOs7搭建基于pptp的VPN服务器

最近想远程连接一下家里的台式机电脑&#xff0c;由于都是局域网&#xff0c;又没有公网ip&#xff0c;所以就没法远程。上网查了一下&#xff0c;发现可以在云服务器上搭建一个VPN&#xff0c;这样两台电脑就在同一个局域网内&#xff0c;就可以完美解决这个问题。现在把搭建方…

【linux常用命令+vi编辑器_2023.11.3】

芯片开发 Linux/Unix&#xff08;环境&#xff09; EDA工具TCL&#xff08;波形&#xff09; SVN/GIT&#xff08;版本控制&#xff09; Makefile&#xff08;脚本语言&#xff09; Perl/Python&#xff08;脚本语言&#xff09; Vim/Gvim&#xff08;编辑器&#xff09; 命令…

基于非洲秃鹫算法的无人机航迹规划-附代码

基于非洲秃鹫算法的无人机航迹规划 文章目录 基于非洲秃鹫算法的无人机航迹规划1.非洲秃鹫搜索算法2.无人机飞行环境建模3.无人机航迹规划建模4.实验结果4.1地图创建4.2 航迹规划 5.参考文献6.Matlab代码 摘要&#xff1a;本文主要介绍利用非洲秃鹫算法来优化无人机航迹规划。 …

《C/C++代码审计实践》一书出版了

我撰写了代码审计一书&#xff0c;包括了C、C、Java语言&#xff0c;加起来有600多页&#xff0c;书籍太厚&#xff0c;印刷成本比较高&#xff0c;出版社对于代码审计将来的销量也有所担心&#xff0c;他们更担心的在书中涉及到了对国家标准的解读&#xff0c;尤其是国家军用标…

Windows 11 开启启用 Hyper-V选项

Hyper-V 是微软开发的基于硬件的虚拟机管理程序。它允许用户在 Windows 操作系统之上运行不同操作系统的多个实例。目前&#xff0c;Hyper-V 也支持 Windows、Ubuntu 和其他 Linux 发行版。 如果发现跟我电脑一样没有启用Hyper-V选项可以按照以下步骤进行操作。 一、新建一个t…