A predefined handler which produces a panic appears in item (L) of
Requirements to Consider for Go 2 Error Handling 
<https://gist.github.com/networkimprov/961c9caa2631ad3b95413f7d44a2c98a>

...which is a comprehensive survey of error-related issues, most of which 
aren't mentioned in the draft design.

What's the use case for a function-call-specific recover?

PS: this thread is attached to an unrelated thread due to in-reply-to 
header; it should be forwarded to separate it...

On Thursday, November 22, 2018 at 3:24:16 AM UTC-8, Michel Levieux wrote:
>
> I will agree with your point. Even currently, when other ways exist, it 
> highly not recommended to use recover. The only time I've had to use it was 
> in systems that needed to be highly available and that could not break at 
> all, even on bugs or implementation failures. This is a particularly rare 
> case. Maybe there'd be a way to restrict such practices to specific cases?
>
> Yes the interface thing is also a question, haven't thought about that ahah
>
> Le jeu. 22 nov. 2018 à 12:14, Axel Wagner <axel.wa...@googlemail.com 
> <javascript:>> a écrit :
>
>> You're right, there is none.
>>
>> IMHO, making recovering from panics easier should be a none-goal. Panics 
>> should be reserved for irrecoverable violations of invariants (i.e. bugs) 
>> and not recovered, in the general case. The main reason panic/recover is 
>> useful today is that it allows to elide some boilerplate, but that won't 
>> matter as much when having check/handle.
>>
>> YMMV, of course.
>>
>> (there's also the secondary issue that panic takes an interface{}, not an 
>> error, so it's not entirely clear what it would mean to convert a panic 
>> into an error - but that's relatively minor)
>>
>> On Thu, Nov 22, 2018 at 12:08 PM Michel Levieux <m.le...@capitaldata.fr 
>> <javascript:>> wrote:
>>
>>> Sure it is, I think it's part of the same problem, but (mainly for the 
>>> second example) it's more complementary than it is redundant. I haven't 
>>> seen a possibility for "quick recovering" in go2 draft design concerning 
>>> error handling. If there is one, could anyone point it out?
>>>
>>> Le jeu. 22 nov. 2018 à 11:36, Axel Wagner <axel.wa...@googlemail.com 
>>> <javascript:>> a écrit :
>>>
>>>> This seems very similar (almost identical, safe for the choice of words 
>>>> maybe) to the Go 2 error handling draft design 
>>>> <https://go.googlesource.com/proposal/+/master/design/go2draft-error-handling-overview.md>
>>>> .
>>>>
>>>> On Thu, Nov 22, 2018 at 11:32 AM Michel Levieux <m.le...@capitaldata.fr 
>>>> <javascript:>> wrote:
>>>>
>>>>> I do like the idea, but the form looks strange IMO. I'd rather make 
>>>>> the "Must" convention a new keyword for the first example, and another 
>>>>> one 
>>>>> for the second (though I don't see a clear keyword for that).
>>>>>
>>>>> For a panic on error you'd write :
>>>>>
>>>>> data := must error_func()
>>>>>
>>>>> Maybe the "try" keyword would be a good choice for the second example 
>>>>> since it's been clearly stated that try ... catch blocks won't be 
>>>>> implemented in go, which would give something like :
>>>>>
>>>>> data, err := try panic_func()
>>>>>
>>>>> But somehow it sounds quite redundant with the possibility to recover 
>>>>> from panics? Don't know
>>>>>
>>>>> Le jeu. 22 nov. 2018 à 11:16, 'yinbingjun' via golang-nuts <
>>>>> golan...@googlegroups.com <javascript:>> a écrit :
>>>>>
>>>>>> For an error function:
>>>>>>
>>>>>> data, err := error_func(…..)
>>>>>>
>>>>>> can be changed to panic style:
>>>>>>
>>>>>> data := panic error_func(……)
>>>>>>
>>>>>>
>>>>>>
>>>>>> And for a panic function:
>>>>>>
>>>>>> data := panic_func(……)
>>>>>>
>>>>>> can be changed to error style:
>>>>>>
>>>>>> data, err := error panic_func(…...)
>>>>>>
>>>>>>
>>>>>>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to