2 ms·
I wish they paniced. I'm talking about trees of function calls with variations on “err = thing(); if err: return err” multiple times in a function, so receivin
by cwillu 3y ago
I wish they paniced. I'm talking about trees of function calls with variations on “err = thing(); if err: return err” multiple times in a function, so receiving an error code in the root function tells you very little about what went wrong or where it went wrong.
- gpderetta 3y agoExactly! Throwing away the call stack before deciding how to handle the error is not ideal.
- angra_mainyu 3y agoI've honestly never needed it when dealing an error, the fact that errors are handled near where they occur means a stack is rarely needed. If you bubble up errors a lot then errors.Is/As is made for that purpose. You really only care about a stack trace with a panic. In anycase, runtime.Stack() iirc should return the stack. But this sounds more like trying to write other languages in Go rather than writing in Go.