[swift-evolution] A unified error handling mechanism?

Boris Wang kona.ming at gmail.com
Fri Aug 5 20:34:15 CDT 2016


do/try/catch use the error handling mechanism, named exception.

I think we should use it carefully , it will results convoluted code and
the risk of exception safe.

Fernando Rodríguez <swift-evolution at swift.org>于2016年8月6日 周六07:50写道:

> Hi,
>
> I do a lot of training and one of the features of Swift that seems more
> confusing to students (and myself) is error handling. There are too many
> ways of doing it, and none seems satisfactory.
>
> Let's take for example an initializer. There are 2 different ways of
> handling errors within an init:
>
> a) Old School: return nil. This was very simple in Objective C, because
> the uncommon case of an error could be easily ignored...until everything
> crashed.
>
> In Swift it's not easy (nor advisable IMHO) to completely ignore the
> possibility of an error. Besides, it has 2 complications.
>
> First of all, you return an Optional, and Optionals have a tendency to go
> viral. Suddenly, all your code has to deal with optionals.
>
> Secondly, you have no information about the error itself.
>
> b) do/try/catch
>
> This allows you to have information about the error, but also causes the
> newly created object to be "trapped" inside a do block.
>
> Are there any plans to address this situation? I believe there should be a
> single, obvious and convenient way of handling errors in the language.
>
> What do you guys think?
>
>
>
> --
>
>
> * <http://keepcoding.io/es/>*
>
>
> *Fernando Rodríguez*
>
> m. +34 610 965 332
>
> t. +34 91 629 57 61
>
> fernando at k <fernando at agbo.biz>eepcoding.io
>
> [image: pastedGraphic.png] [image: pastedGraphic_1.png] [image:
> pastedGraphic_2.png]
>
> *KeepCoding.io*
>
> 2120 University Avenue, Berkeley, CA
>
>
> Avda. Fuencarral, 44, Ed. 8, Loft 30
>
> 28108 Alcobendas (Madrid) Spain
>
>
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160806/f1aa4651/attachment.html>


More information about the swift-evolution mailing list