Reputation: 3508
I have some (ugly) self-written code ported to Swift2 and got this error message in a lambda function:
What I didn't understand is, that I handle the whole code with the error throwing function JSONObjectWithData and catch the error. I throw nothing in the code. Nevertheless the compiler means that I am throwing an error.
I need to understand this behavior. Please be kind because I know that I have to improve my code to make full use of the new error handling concept in swift2.
Thank you very much in advance.
Upvotes: 17
Views: 10097
Reputation: 5136
I think the best way forward is to change your failure function signature to take an ErrorType
. Then just
catch let error {
failure(error: error)
}
will do.
Upvotes: 3
Reputation: 3508
This was fast. I have figured the solution for my problem out with a little help of this article:
http://www.hackingwithswift.com/new-syntax-swift-2-error-handling-try-catch
you have to put a general catch clause at the end of the code because the catch of NSError alone is not sufficient.
catch let error as NSError
{
failure(error: error)
return
}
// this is important -->
catch
{
}
Upvotes: 38