我在這方面找不到太多東西,但我也不知道如何搜索它,所以如果這是重復的,我深表歉意。目前,我有大量代碼,偶爾會出現 mySQL 查詢。有時,由于某種原因,mySQL 連接(在程序啟動時實例化并可供想要使用它的方法訪問,因此不會不斷建立新連接)會失敗。例如,這是一個可能引發的異常: mysql.connector.errors.OperationalError: MySQL Connection not available.當引發異常時,我希望程序嘗試重新建立與數據庫的連接,如果失敗,發送警報(通過 OpsGenie、電子郵件等)。這是非常微不足道的,而不是我正在努力的部分。現在,我在整個程序中都在考慮如何做到這一點,并且我知道我可以將每個 mySQL 查詢語句包裝在一個 try...catch... 中,但是我覺得這可能會很混亂且效率低下。我想知道是否有一種方法可以:覆蓋 mySQL 包中的異常處理程序以包含執行上述操作的代碼,或者創建一些“全局” try...catch... 語句(實際上沒有將整個程序包裝在 try...catch... 中),它將捕獲任何 mySQL 連接異常并按上述方式處理它們(可能與方法裝飾器?)哪個更有效或更合適(如果有的話)。洞察力和想法非常感謝。注意:我在這個項目中使用 Python 3。更新以下是我解決此問題的方法:#methoddef getNewCursor(): try: return(db.cursor()) except OperationalError: #handle error...#in practicecur = getNewCursor()cur.execute("...the SQL query...")... etc我這樣做而不是創建一個方法來處理整個查詢,以便我可以獲取一個游標對象并根據需要使用它,因為創建新游標時會出現連接錯誤。
覆蓋類提供的異常處理程序
慕田峪7331174
2022-06-02 15:13:16