> On Dec 27, 2015, at 10:25 PM, Brent Royal-Gordon via swift-evolution 
> <swift-evolution@swift.org> wrote:
> 
>> So “try” instead of “do”. If there is no catch, then just use braces without 
>> a keyword for a block. 
>> 
>> And use do-while instead of repeat-while.

+1

> 
> Do you also propose no longer marking calls to throwing functions with `try`?

If try had both a single-statement/expression form as it does today, and a 
block form that makes it unnecessary to mark all the individual statements in 
the block, that would be an improvement.

> Have you read the "Error-Handling Rationale" document in the Swift 
> repository? If not, please do: 
> <https://github.com/apple/swift/blob/master/docs/ErrorHandlingRationale.rst> 
> If so, please explain why you disagree with it.

There are large classes of programs where you can know you don’t care exactly 
where a failure happens, e.g. (most init functions, all pure functions, any 
function that doesn’t break invariants).  In these cases marking every 
statement or expression that can throw is just noise.  Try writing some 
serialization/deserialization code where the underlying stream can fail to see 
what I mean; you’ll have “try” everwhere, and it adds nothing to 
comprehensibility or maintainability.  Personally I would like to be able to 
label the function itself and not have to introuce a scope, but IMO being able 
to create “try blocks” would be a welcome addition and would even match the 
common case in blocks with catch clauses, where being aware of the exact line 
where the error was generated is typically not useful.

-Dave

_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to