在Swift中转发错误

前端之家收集整理的这篇文章主要介绍了在Swift中转发错误前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有没有更好的解决方案将Swift错误从一个函数转发到另一个函数

在这一刻,我这样做:

  1. enum Error:ErrorType{
  2.  
  3. case Error1
  4. case Error2
  5. }
  6.  
  7. func func1()throws{
  8. do{
  9. try func2()
  10.  
  11. }catch Error.Error1{
  12. throw Error.Error1
  13.  
  14. }catch Error.Error2{
  15. throw Error.Error2
  16. }
  17. }
  18.  
  19. func func2()throws{
  20. // proof something
  21. throw Error.Error1
  22. }

因此,要转发错误,我需要捕获所有错误并再次抛出它们.

有更好的解决方案吗?

是的:不要将它包装在do … catch块中.
  1. func func2() throws{
  2. // proof something
  3. throw Error.Error1
  4. }
  5.  
  6. func func1()throws{
  7. try func2()
  8. }

猜你在找的Swift相关文章