我正在为我的程序设计一个分析文件的错误返回系统。我有main函数
headerDict, paramDict, modelDict,error = parse(fPath)它接受一个文件路径,然后调用parse(),它返回三个字典和一个错误(0代表所有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现在,我想在每个子函数调用之后检查error是否仍然为零,如果是,则继续下一个子函数,如果不是,则跳转到包含错误值的主函数,在那里将处理它。我可以很明显的插入
if not error:
pass
else:
headerDict = {}
paramDict = {}
modelDict = {}
return headerDict, paramDict, modelDict, error在parse()函数中的每个子函数调用之后,有没有一种更优雅的方法呢?我想编写一个包含上述代码的error_check函数,但是我不知道如何直接返回到主函数而不是解析函数。
请记住,我不想在程序运行期间引发异常等,导致程序停止和退出,我希望程序运行到结束(例如main),然后返回错误值。(也为这个糟糕的标题感到抱歉,我不知道如何表达我的问题…;) )
谢谢你的帮助!
发布于 2015-02-03 21:02:17
这就是异常的用处。定义一个自定义异常-它可以只是一个继承自基本异常类的空类-每个子函数都可以在需要时引发该错误。然后,您的main函数可以将所有内容包装在try/except块中-确保只捕获自定义异常-这样,如果引发其中任何异常,执行将直接跳到except子句。
https://stackoverflow.com/questions/28299426
复制相似问题