2015-10-26 6 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

Да: не обернуть его в делать ... поймать блок.

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

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

Спасибо, я должен был знать. –

1

Вам не нужно, чтобы поймать их, они будут выброшены автоматически, как вы отметили вашу функцию с throws

func func1() throws { 
    try func2() 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^