2016-11-22 74 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