是否有更好的解决方案将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 }
因此,要转发错误,我需要捕获所有错误并再次抛出它们。
有更好的解决方案吗?
是的:不要将其包装在do … catch块中。
func func2() throws{ // proof something throw Error.Error1 } func func1()throws{ try func2() }