def silence_errors(func, *args, **kwargs):
try:
func(*args, **kwargs)
except:
pass # I recommend that you at least log the error however
silence_errors(command1) # Note: you want to pass in the function here,
silence_errors(command2) # not its results, so just use the name.
silence_errors(command3)
实际上,你的第二选择正是你想要的。一旦任何命令引发异常,它就会转到except,并包括异常发生的位置和发生的行的信息。如果您愿意,您可以捕捉不同的异常并使用
我觉得这是一种设计的味道。压制错误通常是个坏主意,尤其是如果你让很多错误保持沉默的话。但我会给你一个怀疑的好处。在
您可以定义一个包含
try/except
块的简单函数:这是可行的,看起来相当干净,但是您需要在任何地方不断重复
silence_errors
。在列表解决方案没有任何重复,但看起来有点糟糕,而且不能轻松地传递参数。但是,您可以从程序中的其他位置读取命令列表,这可能会根据您正在执行的操作而受益。在
^{pr2}$除非我完全误解了你,否则应该这样做:
try
块可以包含任意多个语句。在相关问题 更多 >
编程相关推荐