Python中的try-except使代码混乱

时间:2014-12-31 11:26:56

标签: python exception logging decorator contextmanager

我有一系列在一堆文本上运行的进程。 无论出于何种原因,它都可能失败。

如果我想记录每个进程的失败,我应该使用try-except子句吗? 问题是我的代码被try-except所压倒,主要的流程流程被切成碎片。

for path in paths:
    with open(path) as file:
        text=file.read()
        try:
            process1(text)
        except Exception as e:
            handle e
            record_failure( process1 , file.name)
            continue

        try:
            process2(text)
        except Exception as e:
            handle e
            record_failure( process2 , file.name)
            continue
        .
        .
        .
        processN

或者我之后应该在异常日志文件中分析,我认为这并不容易。

有没有更好的方法来解决这个问题?

1 个答案:

答案 0 :(得分:1)

您可以将所有流程置于循环中:

allProcs = [process1, process2, processN]

for path in paths:
    with open(path) as file:
        text=file.read()
        for proc in allProcs:
            try:
                proc(text)
            except Exception as e:
                # handle e
                record_failure( proc , file.name)
                continue