我发现对我来说看起来像是未经测试的案例。尝试使用 2to3 转换以下代码时:
def test(arg):
raise()
执行不正常地停止,没有说明原因,也没有说明是什么文件导致了问题,如果您尝试转换整个 python 2 脚本文件夹,这将非常烦人。抛出以下内容:
...
exc= exc.children[1].children[0].clone()
IndexError: tuple out of range
我期待获得一个BadInput异常。显然,鉴于上面的源代码,它是预期的raise("something")
,并且由于没有检查元组中的“孩子”raise ()
是否存在,这会导致错误。
如果我错了,请纠正我,当然raise()
是不正确的,但这不应该使执行崩溃,同样如下:
def test(arg):
print 1.method()
抛出BadInput异常,并清楚地表明发生了什么。