Python中的OSError?

时间:2015-03-04 03:05:20

标签: python

第一次来这里。

我目前正在与一项任务达成一致。

我正在编写一个功能来检查注释,但是当我比较值时,我遇到了问题。

所以对于前。我正在使用

    def check_type():
        try:
            if isinstance(value, annot):
                pass
            else:
                raise AssertionError(str(param) + ' failed annotation check(wrong type): value = '+
                                         str(value)+ ' was type ' + str(type(value).__name__)+ 
                                         ' ...should be type '+ str(annot.__name__)) 
        except:
            print('well')
            raise AssertionError(str(param) + ' failed annotation check(wrong type): value = '+
                                    str(value)+ ' was type ' + str(type(value).__name__)+ 
                                     ' ...should be type '+ str(annot.__name__)) 

目前,如果isinstance(value,annot)产生True,则一切正常。 但是,如果没有:我得到一个令人讨厌的OSError。 它没有进入else块,只是给了我OSError。

即使使用try / except块,它也无法正确处理。它会去它并打印"以及#34;但它不会引发AssertionError。除了引发AssertionError之外,它会执行所有操作,并且无论如何都会给我一个OSError。

我认为提出AssertionError存在一些问题,但是当我尝试手动打印出该消息时,它可以正常工作。就在我尝试引发AssertionError时,我不断得到OSError。

任何人都能解释一下吗?

0 个答案:

没有答案