I don’t think you’ve understood what I’m saying:
- people are stupid. application programmers, especially so.
- most of the IT systems that run our world are written by application programmers.
- there are not enough adequately-skilled systems-programmer-level folks living to do all that work.
- and who would want to spend their lives writing transactions to implement the business rules to calculate net asset value for fifty different mutual funds with different rules for each one? [I bore myself just writing that down, and yet it’s a small part of the work of a particular multi-million-dollar mainframe app at a large custodial bank]
- So those applications programmers, and their stupidity, are unavoidable.
- application programmers write code that doesn’t handle all the exceptions it raises, sometimes because they don’t know what to do, sometimes because they’re lazy
- So they typically just add the “throws X, Y, Z” to all their method-signatures, or wrapper that exception in a RuntimeException and be done with it.
- and then they catch and print the stack trace at toplevel (when I was lucky, this was the case; when I was less lucky, they only printed the exception; when I was singularly unlucky, they’d silently swallow the exception).
Look: you’re a smart programmer. So here’s an exercise: pick some problem that requires you to think decently hard to solve it. Then get drunk, and solve that problem while continuing to drink. It’s a small example of what it’s like, being the people who -use- the systems we build, out in industry.
ETA: it might help to insert point #9: of course, most executions don’t throw exceptions, or this coding method wouldn’t work. But when errors occur, and those exceptions get thrown, then eventually someone smarter is brought in to figure out what the hell happened, and for that person, having backtraces is crucial.