Excellent article! Something I've been wanting to write myself for years. Love the first example: try ... catch(ex), log(ex). I've seen numerous developers do this and it's always unnecessary unless you can't catch exceptions globally. Just log all uncaught exceptions in something like Sentry, or a file for that matter, via a global exception handler. It's not about eliminating all possible exceptions, it's to avoid writing a bunch of boilerplate, since every line of code could potentially fail at some point. In the rare cases where some additional context is needed besides what is always added such as the current user, then of course, log away, but write a long comment about why the exception is caught just to be logged.