手册目录

Python 教程

浏览2958
更新时间2025-08-06

异常处理

当我们调用 Python 并发生错误或异常时,通常会停止并生成错误消息。

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

实例

try 块将生成异常,因为 x 未定义:

try:
  print(x)
except:
  print("An exception occurred")

运行实例

由于 try 块引发错误,因此会执行 except 块。

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

实例

该语句将引发错误,因为未定义 x:

print(x)

运行实例

多个异常

您可以根据需要定义任意数量的 exception 块,例如,假如您要为特殊类型的错误执行特殊代码块:

实例

如果 try 块引发 NameError,则打印一条消息,如果是其他错误则打印另一条消息:

try:
  print(x)
except NameError:
  print("Variable x is not defined")
except:
  print("Something else went wrong")

运行实例

Else

如果没有引发错误,那么您可以使用 else 关键字来定义要执行的代码块:

实例

在本例中,try 块不会生成任何错误:

try:
  print("Hello")
except:
  print("Something went wrong")
else:
  print("Nothing went wrong")

运行实例

Finally

如果指定了 finally 块,则无论 try 块是否引发错误,都会执行 finally 块。

实例

try:
  print(x)
except:
  print("Something went wrong")
finally:
  print("The 'try except' is finished")

运行实例

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

实例

试图打开并写入不可写的文件:

try:
  f = open("demofile.txt")
  f.write("Lorum Ipsum")
except:
  print("Something went wrong when writing to the file")
finally:
  f.close()

运行实例

程序可以继续,而且不会打开文件对象。

引发异常

作为 Python 开发者,您可以选择在条件发生时抛出异常。

如需抛出(引发)异常,请使用 raise 关键词。

实例

假如 x 小于 0,则引发异常并终止程序:

x = -1

if x < 0:
  raise Exception("Sorry, no numbers below zero")

运行实例

raise 关键字用于引发异常。

您能够定义所引发异常的类型、以及打印给用户的文本。

实例

如果 x 不是整数,则引发 TypeError:

x = "hello"

if not type(x) is int:
  raise TypeError("Only integers are allowed")

运行实例

相关视频

更多

免费

php8,我来也
初级php8,我来也

321756次学习

收藏

免费

Thinkphp6.0正式版视频教程
中级Thinkphp6.0正式版视频教程

382412次学习

收藏

免费

细说PHP第一季
中级细说PHP第一季

282709次学习

收藏

免费

简单聊聊PHP创业那点事
初级简单聊聊PHP创业那点事

13413次学习

收藏

精品课程

更多
前端入门_HTML5
前端入门_HTML5

共29课时 | 62.5万人学习

CSS视频教程-玉女心经版
CSS视频教程-玉女心经版

共25课时 | 39.7万人学习

JavaScript极速入门_玉女心经系列
JavaScript极速入门_玉女心经系列

共43课时 | 73.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号