4 ms·
I mostly agree, but I’m also comfortable using “panic” in an HTTP server to throw 500’s.
by philwelch 5y ago
I mostly agree, but I’m also comfortable using “panic” in an HTTP server to throw 500’s.
- preseinger 5y agoGoodness, I hope not! This breaks all your downstream middleware and whatever business logic is invoked by your handlers. If you encounter a 500-worthy problem it's an `error` return like anything else. `panic` is not for business logic.
- philwelch 5y ago> `panic` is not for business logic. Neither are 500 responses. A perfect HTTP server never responds 500 and there aren't any situations I've ever encountered where there's any valuable error recovery or business logic left to be done once the server has run into a 500-worthy issue. IIRC, the HTTP server in the Go standard library recovers panics and issues 500 responses, which is what I would expect it to do.
- preseinger 5y ago500 maps to a set of business logic errors, sure. Why not?