在 Python 中打印异常

  1. 在 Python 中使用 try-except-finally 块打印异常
  2. 在 Python 中使用 traceback 模块进行打印异常

在 Python 中,异常是错误。Python 中存在许多错误或异常,例如 TypeErrorSyntaxErrorKeyErrorAttributeError 等。我们在 Python 中使用 try-except-finally 来处理这些异常,因为没有这些块,这些异常将终止程序的执行。Python 中的 try-except-finally 块可用于打印这些异常,而无需停止程序的执行。

在 Python 中使用 try-except-finally 块打印异常

考虑以下代码片段。

dictionary = {
    "hello": "world",
}
number = 25

try:
    number = number + dictionary["hello"]
    print(number)
except Exception as e: 
    print(repr(e))

输出:

TypeError("unsupported operand type(s) for +: 'int' and 'str'",)

在上面的代码中,我们首先用字典 hello 作为指向字符串值 world 的键和变量 number 的字典进行初始化。然后在 try 块中,我们尝试访问存储在字典中的字符串值,并将其添加到 number 变量中。

该声明在实际上和概念上都是错误的,因为不可能在整数中添加字符串。因此,except 块会捕获此错误,并在控制台中输出与此异常关联的 Exception 对象。

在 Python 中使用 traceback 模块进行打印异常

Python 有一个内置模块 traceback,用于打印和格式化异常。而且,它很容易在控制台中打印整个异常。

在 Python 中,你可以使用 raise 关键字手动引发异常。在以下代码段中,我们将使用 raise 关键字在 try 块内引发异常。

import traceback

try:
    raise KeyError
except Exception as e: 
    traceback.print_exc()

输出:

Traceback (most recent call last):
  File ".\main.py", line 4, in <module>
    raise KeyError
KeyError

在上面的代码中,我们引发了一个 KeyError 异常,并使用了 traceback 模块中的 print_exc() 函数来打印该异常。该函数打印有关异常的信息,是 traceback.print_exception(*sys.ex_info(), limit, file, chain) 的简写。

要了解有关 print_exception() 函数的更多信息,请参考官方文档

相关文章 - Python Exception

  • Python assert 异常
  • 在 Python 中没有 except 的 try 语句
  • 忽略 Python 中的异常
  • 在 Python 中使用 try...else 块