如果子级函数和返回标志python中出现错误,则跳转到顶级函数

如果子级函数和返回标志python中出现错误,则跳转到顶级函数,python,Python,我有一个函数“main_func”,从中调用另一个函数,依此类推 class Error(Exception): """Base class for other exceptions""" pass def main_func(): return sub_func() def sub_func(): return sub_sub_func() def sub_sub_func(): return sub_sub_sub_func() def sub_s

我有一个函数“main_func”,从中调用另一个函数,依此类推

class Error(Exception):
   """Base class for other exceptions"""
   pass

def main_func():
    return sub_func()

def sub_func():
    return sub_sub_func()

def sub_sub_func():
    return sub_sub_sub_func()

def sub_sub_sub_func():
    try:
        x = len(10)
        res = 'b'
    except:
        raise Error
    return res

main_func()
如果您在
sub_sub_sub_func()
中看到,我添加了一行
x=len(10)
,这将导致异常

我想要的是,如果发生这种情况,我应该直接跳到main_func()并返回一个
标志(str)作为'fail'

我试图定义自定义异常,但这对我没有帮助

我想在我提出后返回。

len(10)
将提出一个
TypeError
您可以在
main\u func
中捕获此特定异常,然后执行需要执行的操作

请注意,在引发错误时,需要创建错误类的实例<代码>错误()

注意:您的自定义
错误
隐藏了许多信息,这些信息以后会派上用场。是什么引起了这个错误。最好是将原始的
TypeError
作为
Error
的内部异常

try:
    x = len(10)
except Throwable as e:
    raise Error(e)

理论上,在您的代码中,潜在的内存不足异常将转换为您的错误,而不知道发生了什么。

您的意思是在
main_func()
中添加
try except
?@无休止的不使用try except,使用raiseIt不清楚“jump”是什么意思。目前,引发异常将使您编写“跳转”代码,因为没有任何中间“子”函数实现任何形式的异常处理。什么是
flag(str)
?如果要转到
main_func
,可能必须使用
return
或idk?
try:
    x = len(10)
except Throwable as e:
    raise Error(e)