-1. Doesn’t seem worthwhile. There aren’t that many use cases were your code 
gets littered with try and it is nice to identify exactly what is throwing.

Sorry,

 — Howard.

> On 4 Jan 2016, at 2:52 PM, Andrew Duncan via swift-evolution 
> <swift-evolution@swift.org> wrote:
> 
> 
>> On 3 Jan, 2016, at 10:51, David Waite <da...@alkaline-solutions.com> wrote:
>> 
>> One possible approach if it was desirable to not have this used arbitrarily 
>> in place of do+try, and to avoid looking too much like exception syntax: 
>> instead define rethrows blocks:
>> 
>>  func recognizeHandler() throws {
>>      rethrows {
>>           accept(.on)        
>>           recognizeName()
>>           recognizeFormalParamSeq()
>>           accept(.newline)
>>           recognizeCommandSeq()
>>           accept(.end)
>>           recognizeName()   
>>           accept(.newline)
>>      }
>>  }
> 
> Not bad, modulo all the subsequent reasonable comments, of course.
> 
> It is worth pointing out that (some would say) this is not error-handling at 
> all. It’s a normal part of the recognizer life-cycle that it finds a syntax 
> error in the source code. True, it is the (l)user’s error, but not mine. 
> (Those have full-on asserts. Hey, could we have Eiffel-style contracts? Oops, 
> new thread.)
> 
> What I am after here is a quick-and-clean way to unwind the stack. My 
> throwing recognizer has about 200 “try” statements in it. I tried (NPI) this 
> both with exceptions and with Optional return values. Hard to say which I 
> prefer. But is it not more or less the same underneath the hood? I gather 
> that Swift adds an extra return value for throwing functions.
> 
> 
> _______________________________________________
> swift-evolution mailing list
> swift-evolution@swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution

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

Reply via email to