问题
Is there a better solution to forward a Swift error from one function to another?
In the moment, I'm doing it like this:
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
}
So, to forward an error, I need to catch all the errors and throw them again.
Is there a better solution?
回答1:
Yes: don't wrap it in a do ... catch block.
func func2() throws{
// proof something
throw Error.Error1
}
func func1()throws{
try func2()
}
回答2:
You don't need to catch them they will be thrown automatically as you marked your function with throws
func func1() throws {
try func2()
}
来源:https://stackoverflow.com/questions/33350360/forwarding-an-error-in-swift