如何在异常被引发时计算异常?

时间:2012-01-30 19:37:21

标签: python

我是编程的初学者,因为我现在正在进行练习,所以我对异常的基础有点麻烦。

练习分为两部分:

A部分:

我需要创建一个名为ExceptionCounter的类,它包含一个实例变量num_exceptions,它从0开始.ExceptionCounter也有一个方法,它接受一个参数,一个函数(除了通常的self)。 check_for_exception调用该函数(不带参数),如果引发任何异常,则递增num_exceptions。

除了部分&#34之外,我有代码的准系统;如果引发任何异常"。我正在通过函数体是一个对象的函数吗?因此,如果我传递的函数有错误,我该如何处理该错误以便触发增量?

到目前为止,这是我的代码:

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'错误。关于如何解决这个问题的任何想法?

1 个答案:

答案 0 :(得分:4)

我建议阅读关于Errors and Exceptions的Python文档。至于你遇到麻烦的部分,请使用try / except。将可能引发异常的代码放在try子句中,并在except子句中引入“if a exception a raised”代码。例如:

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