簡體   English   中英

引發異常時如何計算異常?

[英]How do I count exceptions when they are raised?

我是編程的初學者,由於我現在正在從事練習,因此我在異常基礎方面遇到了一些麻煩。

練習分為兩個部分:

A部分:

我需要創建一個名為ExceptionCounter的類,該類包含一個實例變量num_exceptions,該變量從0開始。ExceptionCounter也有一個方法,該方法帶有一個參數,即一個函數(除了通常的self之外)。 check_for_exception調用該函數(不帶參數),並在引發任何異常時遞增num_exceptions。

除了“如果引發任何異常”部分之外,我已經掌握了代碼的准系統。 我正在通過一個函數,其中函數主體是一個對象,對嗎? 因此,如果我傳遞的函數有錯誤,我該如何處理該錯誤以觸發增量?

到目前為止,這是我的代碼:

class ExceptionCounter(Exception):
    def __init__(self):
        self.num_exceptions = 0

    def check_for_exceptions(self, func):
        try:
            self.func()
        except Exception:
            self.num_exceptions += 1

但是我得到一個“ ExceptionCounter”對象沒有屬性“ check_for_exception”錯誤。 有想法該怎么解決這個嗎?

我建議您仔細閱讀Python的Errors和Exceptions文檔。 至於您遇到問題的部分,請使用try / except。 將可能引發異常的代碼放在try子句中,並將“如果引發異常”的代碼放在except子句中。 例如:

try:
    func()          # call the function
except Exception:
    counter += 1    # this line is only executed if an exception was raised

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM