首頁 > 後端開發 > Python教學 > 如何在Python中手動引發異常並有效處理它們?

如何在Python中手動引發異常並有效處理它們?

DDD
發布: 2024-12-07 18:39:13
原創
844 人瀏覽過

How Can I Manually Raise Exceptions in Python and Handle Them Effectively?

在 Python 中手動引發異常

目的

引發異常允許對 Python 程式碼中的錯誤和中斷進行受控處理。本文示範如何手動引發特定異常,以便正確擷取和處理它們。

引發異常

要引發異常,請使用 raise 關鍵字,後面跟著異常類別和任何自訂訊息參數。例如:

raise ValueError('Invalid input value.')
登入後複製

引發異常的最佳實踐

選擇特定的異常類:
使用適合情況的最具體的異常構造函數,如下通用異常可以隱藏錯誤並阻止特定處理。

包括描述性訊息:
提供具體且有意義的錯誤訊息以幫助診斷問題。

避免修改異常:
如果需要修改異常,請使用sys.exc_info() 來保留堆疊追蹤。但是,通常不建議這樣做,並且可能會引入 Python 2 和 3 之間的兼容性問題。

異常處理的最佳實踐

使用 except 子句:
何時處理異常,使用 except 子句捕獲特定的異常類型。

Bare raise for重新引發:
要在保留堆疊追蹤的同時重新引發異常,請使用裸引發語句:

try:
    # Code that may raise an exception
except SpecificException:
    logger.error(error)
    raise
登入後複製

已棄用的方法

避免使用這些引發方法異常:

  • 引發ExceptionType,'message':在Python中已棄用3.
  • raise 'message':在所有現代 Python 版本中無效。

範例用法

def check_input(value):
    if not isinstance(value, int):
        raise TypeError('Input must be an integer.')
    if value < 0:
        raise ValueError('Input must be positive.')

try:
    check_input(-1)
except TypeError as error:
    print('Wrong input type:', error)
except ValueError as error:
    print('Invalid input value:', error)
登入後複製

自訂錯誤類型

建立自訂錯誤類型來處理特定的錯誤情境:

class MyCustomError(Exception):
    '''This error represents a specific problem with my code.'''
登入後複製

用法:

raise MyCustomError('An unexpected issue occurred.')
except MyCustomError as error:
    print('Custom error raised:', error)
登入後複製

以上是如何在Python中手動引發異常並有效處理它們?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板