Nick Lockwood says it better than me (https://gist.github.com/nicklockwood/21495c2015fd2dda56cf) but the gist of it is that Swift 2's error handling system reaches it's limits with asynchronous code. And we are living more and more in a world of asynchronousity. I don't really like Nick's proposition for fixing that, but I hope that the Swift team has an end-plan for this. Any ideas?
Swift 2 Error Handling Asynchronous Code
This post is simlar to my question about ErrorType: https://forums.developer.apple.com/thread/4354
For now, can't you just wrap the arguments to callbacks in throwing closures, forcing the use of error handling to extract the information? Seems like that would get you to almost exactly the result described in the asynchronous example in section 3 of the linked gist.