TypeError:exception必须是旧式类或派生自BaseException,而不是NoneType

时间:2013-04-14 18:27:27

标签: python inheritance exception-handling ipython

所以今天这让我感到很困惑。我把它扔给你们。

我正在

TypeError: exceptions must be old-style classes or derived from BaseException, not NoneType

即使我只是单独使用raise或使用Exception()

这是整个追溯,这有助于它。我很沮丧...

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
/home/gus/py274/lib/python2.7/site-packages/IPython/utils/py3compat.pyc in execfile(fname, *where)
    176             else:
    177                 filename = fname
--> 178             __builtin__.execfile(filename, *where)

/home/gus/Dropbox/repos/git/blacktie/src/blacktie/scripts/blacktie_pipeline.py in <module>()
    233 
    234 if __name__ == "__main__":
--> 235     main()

/home/gus/Dropbox/repos/git/blacktie/src/blacktie/scripts/blacktie_pipeline.py in main()
    203             # Prep cuffmerge call
    204             ##ipdb.set_trace()
--> 205             cuffmerge_call = CuffmergeCall(yargs,email_info,run_id,run_logs,conditions=experiment,mode=args.mode)
    206             cuffmerge_call.execute()
    207 

/home/gus/Dropbox/repos/git/blacktie/src/blacktie/utils/calls.pyc in __init__(self, yargs, email_info, run_id, run_logs, conditions, mode)
    627 
    628         self.prog_yargs = self.yargs.cuffmerge_options
--> 629         self.set_call_id()
    630         self.init_log_file()
    631         self.out_dir = self.get_out_dir()

/home/gus/Dropbox/repos/git/blacktie/src/blacktie/utils/calls.pyc in set_call_id(self)
    116             self.call_id = call_id
    117         else:
--> 118             raise Exception()
    119 
    120     def notify_start_of_call(self):

TypeError: exceptions must be old-style classes or derived from BaseException, not NoneType

1 个答案:

答案 0 :(得分:1)

好吧我好像发现问题不在我自己的代码本身。我一直在Ipython中运行脚本:因此是顶级跟踪地址。

我决定从终端运行它,并按预期引发异常。

我自己回答了这个问题,尽管我仍然不知道为什么Ipython会导致这种情况发生,因为这似乎是一个我应该问的单独问题。

希望这有助于有人看到这种奇怪的行为。