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

异常处理

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

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

except 块用于处理错误。

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

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

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

python 复制代码
try:
  print(x)
except:
  print("发生了一个异常")

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

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

python 复制代码
print(x)

多个异常

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

python 复制代码
try:
  print(x)
except NameError:
  print("变量 x 未定义")
except:
  print("其他错误")

else

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

python 复制代码
try:
  print("Hello")
except:
  print("出现了错误")
else:
  print("没有出错")

finally

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

python 复制代码
try:
  print(x)
except:
  print("发生了错误")
finally:
  print("'try except' 完成了")

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

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

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

引发异常

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

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

python 复制代码
x = -1

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

raise 关键字用于引发异常。

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

python 复制代码
x = "hello"

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

最后

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

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

相关推荐
子兮曰4 天前
jev-ultrafast 深度解析:7 秒订机票的浏览器 Agent 是如何炼成的
前端·后端·agent
子兮曰4 天前
Jev 爆发一周:7 秒 Agent 背后的 System One 生态与三场争议
前端·后端·ai编程
默_笙4 天前
🍙 给每个请求过安检:FastAPI 是怎么把校验写进类型注解的
python
爱勇宝4 天前
ZCode 开源 24 小时:一份没有历史的账本,回答不了"有没有偷代码"
前端·后端·chatglm (智谱)
qq_426003964 天前
启动playwright录制codegen生成自动化测试脚本
python·自动化
虎头金猫4 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
胡写代码4 天前
别再前后端各写一套表单校验了
java·后端
长沙三为智能科技4 天前
家政小程序开发从0到上线:五阶段交付流程与验收清单
python
伞伞悦读4 天前
【第38期】Python 模块与包详解:import、from、模块搜索路径、包结构和 __init__
开发语言·python
大勇前进4 天前
原生 PHP 还是 Laravel?小项目到底要不要上框架
后端