So is the only way to Mock the objects such that the exception can be thrown?
I believe that will be the easiest way, but you could also do a stub (aka a object that extends the real object, and forces behvior like throwing an exception everytime). Or you could use AOP, but I think using a library like easymock or jmock is going to be the easiest way to go.
That seems a little bit pointless. Perhaps it's better to just accept not getting 100% code coverage?
Whenever I speak on this topic I like to shift people's mindset from worrying about a certain percentage of coverage, and instead to use the percentage as a tool to make you a better developer. Put another way having 100% coverage or 50% coverage does not necessarily mean your code is well written or even working but using Code Coverage as key indicator when you are developing code as to if you have been slacking on writing tests etc... is a good idea.
My personal opinion about your question is that if it is logic your application is doing, then it is worth testing. So if you are catching and exception and retuning false from the method, you should have a test for that. If you are catching the exception and wrapping it in another exception you should test that. If you are catching the exception and doing nothing, then that should be a code smell that needs to be fixed because that can lead to all kinds of unmanageable side effects.
As to whether 100% is not wroth it, I would say yes it is not worth it. You should find a good comfort level for yourself (maybe 80%, maybe 90%) and stick with it. But I would not base it on the types of tests (like testing exception logic) it should just be based on total coverage and seen as an indicator that you are not writing your tests when you commit code.