python异常处理应该怎么写_Python简写异常处理

正如其他答案已经指出的,您应该考虑重构代码。在

我说了,如果没有异常的话,我就不能一起执行你的功能。在import ast, _ast, compiler

def fail():

print "Hello, World!"

raise Exception

x = [4, 5]

print x

if __name__ == '__main__':

with open(__file__, 'r') as source:

tree = ast.parse(source.read(), __file__)

for node in ast.iter_child_nodes(tree):

if isinstance(node, _ast.FunctionDef):

_locals = {}

for line in node.body:

mod = ast.Module()

mod.body = [line]

try:

exec(compile(mod, filename='', mode='exec'), _locals, globals())

except:

import traceback

traceback.print_exc()

代码执行它在全局范围内找到的任何函数,并防止它在失败时退出。它通过迭代文件的AST来实现,并为函数的每一行创建一个新的模块来执行。在

如您所料,程序的输出是:

^{pr2}$

我要强调的是,在任何生产代码中使用这一点都是个坏主意。但是为了争论,这样的事情是可行的。你甚至可以用一个很好的装饰器来包装它,尽管这样做并不能改变这是一个坏主意的事实。在

重构快乐!在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值