Buy the book "Code Complete" by Steve McConnell and read it. Page 198-203 of my 2nd edition specifically talks about exceptions.
What you are doing is covering up exceptions you don't know what to do with, which means your code is either raising an exception for no reason, or as Alex said you are hiding problems from yourself.
What you should do is let the null pointers and other exceptions blow out, find where they are coming from, and either avoid or fix those problems.
Thanks for replying! Why should I let the null pointers and other exceptions blow out if, instead, I could have a breakpoint and error-logger inside every try-catch block? When I would run the code with a debugger attached, any use of the try-catch block would 'crash' the game to the debugger, saving the trouble of reloading while exposing what went wrong. When the user would run the code, the try-catch block would execute silently, letting them enjoy the game without worrying about crashes, which I worry about because my mod interacts with every other mod in the game and the entire combat system without many of the guarantees of the API; e.g., I have to cover not only projectiles, missiles, and beams but also asteroids, ships, debris, and anything else that any modder has decided to toss in. If my mod crashed to the desktop or even displayed an error dialogue for every exception, users could never rest easy and would probably uninstall it.

(see below as well)
Kicking the player to desktop is unpleasant, so in cases where the error will be visible without such extreme methods and/or is non-fatal (in my case, this is UI elements in an intel display), I've used a catch-all-exceptions block.
But log the error at least so if it's noticed you know what's going on.
What do you mean by non-fatal? I expect nullPointerExceptions, weird numerical errors, etc. especially once huge lists of other mods and their interactions become involved because my mod works with dark DIY API magic, implements a whole new damage model, and has many EveryFrameCombatScripts, some of which do things I know to be unstable but haven't seen an alternative to. I'm afraid that I am attempting to do stuff so inherently unstable and repetitive that if Realistic Combat so much as threw pop-ups, the user might know no peace. For example, I received a bug report that the entire combat UI was smeared around the screen, implying that Realistic Combat had 'shrugged and chugged' despite a glaring problem with a perhaps gnarly or obscure cause--just as I had hoped because I haven't received another such report before or since.
Writing all this, I have a bad feeling, but I don't know why. I think I need another try-catch block.

Actually now what I'd like is a standardised API for error reporting dialogs (and do this automatically for uncaught exceptions), like the one AI War 2 uses:
- Big annoying popup is big, annoying and full of scary code, but it also immediately lets them know something has gone wrong without the abrupt transition of a CTD, or losing their progress
- When player shows a screenshot of this to someone, the stacktrace is immediately visible without having to tell them where/how to look for starsector.log
- If the error isn't fatal they can resume playing, at least they can make a save copy and try to continue, and even if things are in an invalid state now they can sometimes be left alone till the relevant battle/campaign event ends, or fixed with a console runcode
That's easier than it might seem. I believe you can use LazyLib to directly draw a big, scary blue block on the screen and print white text on it: "ERROR: [report] PRESS SPACE TO CONTINUE"