Python 中的異常訊息
Muhammad Waiz Khan
2023年1月30日
2021年2月7日
-
使用
logger.exception()
方法捕獲 Python 中的異常訊息 -
在 Python 中使用
logger.error()
方法捕獲異常訊息 -
在 Python 中使用
print()
方法捕獲異常訊息
本教程將講解在 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',)