Python 程序中的 try 和 except

pythonserver side programmingprogramming更新于 2025/10/23 10:52:17

在本教程中,我们将学习 Python 的 try 和 except。Python 有一个称为 错误和异常处理 的概念。

关键字 try 和 except 用于错误和异常处理。

基本上,我们会在 Python 中发现两种类型的错误。它们是 −

  • 语法错误 - 当 Python 无法理解程序中的一行代码时,它会给出这些类型的错误。

  • 异常错误 - 在程序运行时检测到的错误。例如:- ZeroDivisionError、ValueError 等,

我们无法阻止语法错误。但是,我们可以使用try-except来提示程序是否遇到了异常错误。让我们看看 Python 中最常见的异常错误。

  • ZeroDivisionError − 当我们尝试用零 (0) 除以任何数字时,就会发生这种情况。

  • ValueError − 当我们将不适当的值传递给函数时,就会引发这种情况。

  • IndexError − 当我们尝试访问不可用的索引时。

  • KeyError − 当我们尝试访问字典中不存在的键时。

  • ImportError −如果我们尝试导入一个不存在的模块。

  • IOError − 当 Python 无法打开文件时发生。

  • KeyboardInterrupt − 当用户按下不需要的键时发生。

Python 中有很多异常错误。我们可以使用 try-except 轻松处理这些错误。让我们先看看 try-except 的语法。

# try-except 语法
try:
   # 语句
   # 语句
   # ...
except:
   # 语句
   # 语句
   # ...

Python 如何执行 try-except 块代码?让我们一步一步来看看。

  • 首先,Python 执行 try 块内的代码。

  • 如果代码中没有任何 异常错误,则 except 块将不会执行。

  • 如果代码中发生任何 异常错误,则将跳过 try 块并执行 except 块代码**。

  • 如果发生任何 异常错误并且 except 块无法处理它,则会引发相应的异常错误。

  • 我们可以为一个 try 包含多个 except 语句。块。

示例

让我们看一个没有任何异常错误的示例。

# 无异常错误
try:
   arr = [1, 2, 3, 4, 5]
   # 使用有效索引从数组访问项目
   two = arr[1]
   print(f"我们没有收到任何错误 {two}")
except IndexError:
   print("给定的索引无效")

输出

如果运行上述程序,您将得到以下结果。

我们没有得到任何错误 2

我们没有得到任何异常错误。因此,try 块中的代码被执行。

示例

让我们看一个具有无效索引的相同示例。

# 无异常错误
try:
   arr = [1, 2, 3, 4, 5]
   # 使用无效索引从数组中访问项目
   six = arr[6]
   print(f"我们没有得到任何错误 {six}")
except IndexError:
   print("给定的索引无效")

输出

如果执行上述代码,则会得到以下结果。

给定的索引无效

我们在 try 块中得到了 IndexError。因此,执行了 except 块中的代码。

示例

让我们看看如果 except 无法处理异常错误会发生什么。

# 没有异常错误
try:
   arr = [1, 2, 3, 4, 5]
   # 使用无效索引从数组中访问项目
   six = arr[6]
   print(f"我们没有收到任何错误 {six}")
except ValueError:
   print("给定的索引无效")

输出

如果运行上述代码,您将获得以下结果。

---------------------------------------------------------------
IndexError                                   回溯(最近一次调用最后一次)
<ipython-input-11-fe3737d0615b> 在 <module> 中
      3    arr = [1, 2, 3, 4, 5]
      4    # 使用无效索引访问数组中的项目
----> 5    six = arr[6]
      6 print(f"我们没有收到任何错误 {six}")
      7 except ValueError:
IndexError: list index out of range

我们收到错误。我们在 except 块中给出了 ValueError 。但是,我们收到 IndexError,它无法由 except 块处理。因此,我们收到错误。在 except 块中指定异常错误时要小心。

结论

如果您对本教程有任何疑问,请在评论部分中提及。


相关文章


有用资源