首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >错误管理/跳到顶级函数- Python

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

Stack Overflow用户
提问于 2015-02-03 20:52:49
回答 1查看 208关注 0票数 0

我正在为我的程序设计一个分析文件的错误返回系统。我有main函数

代码语言:javascript
运行
复制
headerDict, paramDict, modelDict,error = parse(fPath)

它接受一个文件路径,然后调用parse(),它返回三个字典和一个错误(0代表所有ok,数字代表不同的错误类型,错误在子函数中定义)。parse是一个函数,它调用几个返回错误的子函数:

代码语言:javascript
运行
复制
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是否仍然为零,如果是,则继续下一个子函数,如果不是,则跳转到包含错误值的主函数,在那里将处理它。我可以很明显的插入

代码语言:javascript
运行
复制
if not error:
    pass
else:
    headerDict = {}
    paramDict = {}
    modelDict = {}
    return headerDict, paramDict, modelDict, error

在parse()函数中的每个子函数调用之后,有没有一种更优雅的方法呢?我想编写一个包含上述代码的error_check函数,但是我不知道如何直接返回到主函数而不是解析函数。

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

谢谢你的帮助!

EN

回答 1

Stack Overflow用户

发布于 2015-02-03 21:02:17

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28299426

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档