-1

我有 4 个模块。1. run.py 这里我正在做A类和B类的初始化和设置。我想做的是:

    try:
        x = x[0]()
    except TestFailure as tf:
        print tf.message

其中由于 for 循环,x 迭代 A 类和 B 类。因此,对于第一次迭代,它首先为 A 类进行初始化,然后为 B 进行初始化。

  1. Test.py 这里我有类测试

    class Test(object):
        IS_TEST = False
        teardown_stack = []
        td=[]
        def __init__(self):
            print "in Test init"
            super(Test, self).__init__()
    
        def setup(self):
            print "\tin Test setup"
            #self.add_teardown(foo)
    

现在

class TestFailure (None, msg):
message = ""
    if self.msg:
        message = self.msg
    pass
  1. 我有 A.py

    class A(Test):
        IS_TEST = True
        def __init__(self):
            test_variable = 9;
            if test_variable < 0:
                raise TestFailure("test_variable is negative.")
            print "in A init"
            super(A, self).__init__()        
    
        def setup(self):
            print "in A setup"
    
  2. 我拥有的最后一个模块是 B.py

    class B(A):
        IS_TEST = True
        def __init__(self):
            test_variable = 9;
            if test_variable < 0:
                raise TestFailure("test_variable is negative.")
            print "in B init"
            super(B, self).__init__()        
    
        def setup(self):
            print "\tin B setup"
    

我以前没有使用过 python 异常,因此我根本不熟悉它们。如何得到这份工作?我到底哪里错了?我想通过这种方法引发异常,在进行初始化之前,它仅在 test_variable 为正时才使操作发生。

4

1 回答 1

0

我无法理解您的脚本流程,但就您关于异常类的问题而言,为什么不在创建异常类时继承 Exception 类?

class TestFailure(Exception):
    pass

其余的来自继承。您可以在此处找到更多信息:在现代 Python 中声明自定义异常的正确方法?

于 2014-08-14T17:34:21.450 回答