错误管理/跳到顶层函数-Python

错误管理/跳到顶层函数-Python,python,python-2.6,Python,Python 2.6,我正在为解析文件的程序设计一个错误返回系统。我有主要功能 headerDict, paramDict, modelDict,error = parse(fPath) 它获取一个文件路径,然后调用parse(),返回三个字典和一个错误(0表示EverythSign ok,数字表示不同的错误类型,错误在子函数中定义)。 parse是一个调用多个子函数的函数,这些子函数返回错误: def parse(fPath): content, error = read_file(fPath)

我正在为解析文件的程序设计一个错误返回系统。我有主要功能

headerDict, paramDict, modelDict,error = parse(fPath)
它获取一个文件路径,然后调用parse(),返回三个字典和一个错误(0表示EverythSign ok,数字表示不同的错误类型,错误在子函数中定义)。 parse是一个调用多个子函数的函数,这些子函数返回错误:

def parse(fPath):
    content, error = read_file(fPath)

    header, body, error = prepare_file(content)

    headerDict, error = make_headerDict(header)

    paramDict, modelDict, error = make_bodyDicts(body)

    return headerDict, paramDict, modelDict, error
现在,我想在每次子函数调用后检查错误是否仍然为零,如果是,继续下一个子函数,如果不是,跳转到主函数,并在其中处理错误值。我显然可以插入

if not error:
    pass
else:
    headerDict = {}
    paramDict = {}
    modelDict = {}
    return headerDict, paramDict, modelDict, error
在parse()函数中的每个子函数调用之后,是否有一种更优雅的方法来实现这一点?我曾想过编写一个包含上述代码的错误检查函数,但是我不知道如何直接返回到主函数而不是解析函数

请记住,我不希望在程序运行期间引发异常等,并导致其停止和退出,我希望程序运行到结束(例如main),然后返回错误值。(同时也为糟糕的标题感到抱歉,我不知道如何表达我的问题……;)


谢谢你的帮助

这就是例外情况。定义一个自定义异常-它可以是从基异常类继承的空类-并且您的每个子函数都可以在需要时引发该错误。然后,您的主函数可以将所有内容包装在try/except块中—确保只捕获自定义异常—这样,如果出现任何异常,执行将直接跳到except子句

好吧,听起来很合理,我没有考虑过自定义异常。。。我会调查的,谢谢!