2015-10-26 31 views
0

有沒有更好的解決方案將Swift錯誤從一個函數轉發到另一個函數?在Swift中轉發錯誤

在那一刻,我在做這樣的:

enum Error:ErrorType{ 

    case Error1 
    case Error2 
} 

func func1()throws{ 
    do{ 
     try func2() 

     }catch Error.Error1{ 
      throw Error.Error1 

     }catch Error.Error2{ 
      throw Error.Error2 
     } 
} 

func func2()throws{ 
    // proof something 
    throw Error.Error1 
} 

因此,轉發一個錯誤,我需要捕獲所有的錯誤,然後再次把他們。

有沒有更好的解決方案?

回答

4

是標記你的函數,他們將被自動拋出:在做... catch塊不包裹。

func func2() throws{ 
    // proof something 
    throw Error.Error1 
} 

func func1()throws{ 
    try func2() 
} 
+0

謝謝,我應該知道。 –

1

你並不需要趕上他們爲你throws

func func1() throws { 
    try func2() 
}