我是编程的初学者,因为我现在正在进行练习,所以我对异常的基础有点麻烦。
练习分为两部分:
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'错误。关于如何解决这个问题的任何想法?
答案 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