I was referring to this comment (below) made by a different commentor, which 
was related to the lock not being released if it panics - and that only matters 
if the application doesn’t terminate.

> Recovering from panics is a common and IMO perfectly acceptable practice... 
> For example in a web server where you do not want a panic that occurs while 
> handling a request to affect other request, especially ones that are in 
> flight.



> On Feb 9, 2019, at 6:48 PM, Michael Jones <michael.jo...@gmail.com> wrote:
> 
> The original question--the one I answered--was about a small block of user 
> code and asked nothing about http or unexpected panics.
> 
> The spirit of panic/recover, and with defer, includes in its use "local" 
> panic, a kind of successor to setjump/longjump, that unwinds the stack, calls 
> defers, and is caught and managed near some local top. As in the blog post I 
> excerpted:
> 
> https://blog.golang.org/defer-panic-and-recover 
> <https://blog.golang.org/defer-panic-and-recover>
> 
> On Sat, Feb 9, 2019 at 2:22 PM robert engels <reng...@ix.netcom.com 
> <mailto:reng...@ix.netcom.com>> wrote:
> I agree, but in that case the ‘panic’ is as you say recognized (and in this 
> particular case used to unwind from a potentially very deep call), but is 
> then still returned as an error.
> 
> The previous commentor referred to catching “panics" in a top-level http 
> request processor and continuing to service requests - which is far different 
> in my opinion.
> 
> > On Feb 9, 2019, at 4:08 PM, Ian Lance Taylor <i...@golang.org 
> > <mailto:i...@golang.org>> wrote:
> > 
> > On Fri, Feb 8, 2019 at 7:48 PM Robert Engels <reng...@ix.netcom.com 
> > <mailto:reng...@ix.netcom.com>> wrote:
> >> 
> >> The way Go is designed a panic must terminate the application. Anything 
> >> else is so indeterminate to be unusable.
> > 
> > I think one can reasonably argue that an unrecognized panic should
> > terminate the application.
> > 
> > But there is nothing wrong with recovering and continuing from a
> > recognized panic.  For example, the call to recover in
> > encoding/json.encodeState.marshal is fine
> > (https://golang.org/src/encoding/json/encode.go#L295 
> > <https://golang.org/src/encoding/json/encode.go#L295>).
> > 
> > Ian
> > 
> > -- 
> > 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 
> > <mailto:golang-nuts%2bunsubscr...@googlegroups.com>.
> > For more options, visit https://groups.google.com/d/optout 
> > <https://groups.google.com/d/optout>.
> 
> 
> 
> -- 
> Michael T. Jones
> michael.jo...@gmail.com <mailto:michael.jo...@gmail.com>
> 
> -- 
> 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 
> <mailto:golang-nuts+unsubscr...@googlegroups.com>.
> For more options, visit https://groups.google.com/d/optout 
> <https://groups.google.com/d/optout>.

-- 
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