I am Ary Tebeka, serial entrepreneur and currently an Indie iOS dev (for the last 4 years). I’ll try to post in this blog thingsĀ I discover while developing for iOS.

Swift 2: should a function Throw or return an Optional?

With Swift 2 we now have two ways for a function to fail:

  • It can return an Optional
  • Or it can Throw

Let’s use a very simple example: a function to return the square root of a number.
It is supposed to fail if the number was negative of course.

Return an Optional

Throw an exception
Which style do you prefer? The obvious advantage of “throw” is that we get an ErrorType with information on the reason of the failure.
On the other side, Optional results can be chained and this can make it a much more convenient choice when we don’t care about the reason for failure.