Skip to content

Instantly share code, notes, and snippets.

@baydet
baydet / gist:3b9a4a9dcfa19cb9b1ae
Last active September 9, 2015 14:14 — forked from nicklockwood/gist:21495c2015fd2dda56cf
Thoughts on Swift 2 Errors

Размышления об ошибках в Swift 2

Когда анонсировали Swift, я несказанно обрадовался, что он унаследовал от Objective-C философию работы с исключениями - исключения не должны использоваться для контроля выполнения программной логики, а только для сообщения о критических ошибках во время разработки

Поэтому я был удивлен, когда узнал, что в Swift 2 добавили традиционную схему обработки исключений.

Похожим образом были удивлены функицональные Swift программисты, которые обрели свою веру в Haskell-стиле обработки ошибок, где каждая функция возвращает enum (или monad, если желаете), содержащий валидный результат или ошибку. Это выглядело лаконичным решением для Swift 1.x, так почему же Apple сделала выбор в пользу решения, предназначенного для неуклюжих императивных языков?

Я собираюсь разобраться в 3 вопросах в этом посте: