2016-11-22 77 views
1

如何在一个函数中尝试某些操作,然后将除处理过程传递给另一个函数?Python 3提高和捕捉异常

我想能够尝试2个功能,如果他们都返回一个错误,这两个错误将handeld。但如果其中一个工作,那么一切都应该没问题,并且不应该返回错误信息(应该返回工作的函数)。即使我在try块中尝试的一个函数崩溃了。

也许有一个链接描述了这种类型的错误处理?

+0

是我还是与问题无关的代码? –

+0

是的,很抱歉改变了它 – Fanny

+0

包括与问题相关的代码会更好。没有代码不是更好。 –

回答

0

我不知道如果我理解正确,但也许这将帮助:

def f1(): 
    raise ValueError 

def f2(): 
    return "Success!" 

def f(): 
    result = None 
    try: 
     result = f1() 
    except: 
     pass 

    try: 
     result = f2() 
    except: 
     pass 

    if result is not None: 
     return result 
    else: 
     print "Both function crashed! 

我希望这回答了你的问题,如果没有,说明你想要的其他功能。

2

一个嵌套的try/except块应该弄完:

try: 
    function1() 
except: 
    try: 
     function2() 
    except: 
     # Do something... 

第一个函数运行,那么如果出现异常,第二funcrion运行。如果两者均失败,则在最后的除外区块中处理它们。

至于第二个问题,您可以直接在读取文件时提出错误,然后__init__除块可以处理它。

+0

一些解释会对OP有帮助。谢谢 – user2728397