下面的例子只是一个黑客,因为我不太了解它:
class ErrorCollector(Exception):
def __init__(self):
self.errors = []
def __nonzero__(self):
return bool(self.errors)
def do_something(a, b):
err = ErrorCollector()
try:
int(a)
except Exception:
err.errors.append('{!r} fails'.format(a))
try:
int(b)
except Exception:
err.errors.append('{!r} fails'.format(b))
if err:
raise err
def run(*args):
err = ErrorCollector()
for arg in args:
try:
do_something(*arg)
except Exception as e:
err.errors.extend(e.errors)
if err:
print 'You have these problems:\n{}'.format('\n'.join(err.errors))
我怎样才能做得更好?我以前的一个解决方案是收集列表中的错误描述并将其传递给错误实例。因此,毕竟,这与这里显示的解决方案类似。你知道吗
差不多吧。你知道吗
相关问题 更多 >
编程相关推荐