3 ms·
"With error wrapping I can usually see the exact path that lead to the error in one line" This is called a stack trace, and I agree it can be very useful (if t
by danesparza 1y ago
"With error wrapping I can usually see the exact path that lead to the error in one line"
This is called a stack trace, and I agree it can be very useful (if the developers were thoughtful about their error handling)
- anttiharju 1y agoI suppose I phrased this poorly. Stack traces are useful indeed. I guess what I like that usually wrapped errors are bit more thoughtful, stack traces can look a bit like "vomit".
- RSHEPP 1y agofrom my experience of late, engineers usually toss stack traces into LLMs and ask what the issue is. good error wrapping, engineers grep for one of the first errors and get to the error code right away. both ways work.
- sfn42 1y agoIf you can't read a stack trace without an LLM you're not an engineer.
- danesparza 1y agoCounterpoint: You might also just be working on an exceptionally bad codebase or with an exceptionally bad runtime (I'm looking at you C/C++ or minified Javascript)
- sfn42 1y agoSure, if the stack trace doesn't have any useful information then it's not useful. In my experience it's usually useful though, it usually tells you both what the problem is and where it is. Sadly a lot of people just don't even try to read them.
- eschatology 1y agoStack trace is much more verbose and shows the symbols leading to the failing function call The error wrapping(s) produce a log line containing a brief message from each layer in the codebase that expected no errors — subtle difference but one is a dump and the other is much more meaningful.
- kubanczyk 1y ago> The error wrapping(s) produce a log line containing a brief message from each layer in the codebase that expected no errors — subtle difference Agreed. How I articulate it, often a function is just another layer, does one core thing and one-two extras. I wrap meticulously the errors of the extras. The core errors mainly speak for themselves, so they rarely need any wrapping. Avoids: cannot load config: cannot load config: cannot load config: file not found But promotes: cannot load config: cannot connect to Configurer: loading client cert: PEM invalid The latter case reads like a list of plot twists, because it is one. A corresponding 40-line stack trace might be less readable.