Python 中的異常訊息

Muhammad Waiz Khan 2023年1月30日 2021年2月7日
  1. 使用 logger.exception() 方法捕獲 Python 中的異常訊息
  2. 在 Python 中使用 logger.error() 方法捕獲異常訊息
  3. 在 Python 中使用 print() 方法捕獲異常訊息
Python 中的異常訊息

本教程將講解在 Python 中捕獲異常訊息的不同方法。異常處理用於響應程式執行過程中出現的異常。處理異常是很重要的,否則每當出現一些異常時,程式就會崩潰。

try ... except 語句在 Python 中處理異常。但是我們還需要捕捉程式碼執行過程中發生的異常細節,以便解決。下面解釋了在 Python 中可以用來捕獲異常訊息的各種方法。

使用 logger.exception() 方法捕獲 Python 中的異常訊息

logger.exception() 方法返回一個錯誤資訊和日誌跟蹤,其中包括髮生異常的程式碼行號等細節。logger.exception() 方法必須放在 except 語句中,否則在其他地方將無法正常工作。

下面的程式碼示例演示了正確使用 logger.exception() 方法和 try ... except 語句來捕獲 Python 中的異常資訊。

import logging

logger = logging.getLogger()

try:
    x = 1/0
except Exception as e:
    logger.exception('Exception occurred while code execution: ' + str(e))

輸出:

Exception occurred while code execution: division by zero
Traceback (most recent call last):
  File "<ipython-input-27-912703271615>", line 5, in <module>
    x = 1/0
ZeroDivisionError: division by zero

在 Python 中使用 logger.error() 方法捕獲異常訊息

logger.error() 方法只在 try 塊內發生異常時返回錯誤資訊。下面給出了 Python 中 logger.error() 方法如何捕獲異常資訊的程式碼示例。

import logging

logger = logging.getLogger()

try:
    x = 1/0
except Exception as e:
    logger.error('Exception occurred while code execution: ' + str(e))

輸出:

Exception occurred while code execution: division by zero

在上面的例子中,我們可以注意到,str(e) 方法只從異常 e 物件中獲取異常訊息,而不是異常型別。

repr(e) 方法可以用來獲取異常訊息的同時獲取異常型別。下面的程式碼示例演示了 repr(e) 方法的使用和輸出。

import logging
logger = logging.getLogger()
try:
    x = 1/0
except Exception as e:
    logger.error('Exception occurred while code execution: ' + repr(e))

輸出:

Exception occurred while code execution: ZeroDivisionError('division by zero',)

在 Python 中使用 print() 方法捕獲異常訊息

我們也可以使用 print() 方法來列印異常訊息。下面的示例程式碼演示瞭如何在 Python 中使用 print() 方法捕獲和列印異常訊息。

示例程式碼:

try:
    x = 1/0
except Exception as e:
    print('Exception occurred while code execution: ' + repr(e))

輸出:

Exception occurred while code execution: ZeroDivisionError('division by zero',)

相關文章 - Python Exception