我的項目的代碼是完全一樣以下模塊:我可以改變「提高」或「例外」的行爲嗎?
try:
execute_some_code()
except Exception:
print(datetime.datetime.now())
raise
僅僅是因爲,如果我得到一個錯誤信息,我想知道什麼時候發生。我覺得反覆重複這些代碼非常愚蠢,我想把它分開。
我不想裝飾execute_some_code
的東西,這樣做的錯誤捕獲(因爲有時它只是一個代碼塊,而不是一個函數調用,有時我不需要完全相同的功能來裝飾,就像那樣)。我也不希望將stdout轉移到記錄所有內容的其他流,因爲這會影響其他所有發送到stdout的內容。
理想情況下,我希望覆蓋raise
語句(在每次執行時也打印datetime.datetime.now()
)或Exception
類的行爲,以預先將所有消息與時間掛起。我可以很容易地從Exception
中進行分類,但是之後我必須確保我的函數能夠引發這個子類的一個實例,並且我會有與當前一樣多的代碼重複。
這些選項可能有哪些?
正在使用調試器一個選項嗎? – xuhdev
我正在寫'sys.excepthook',但@IljaEverilä打倒我找到了這個謎。 – Boldewyn