What, to simply pass them on to the next higher level, because you know there is a higher level function that is designed to handle those specific exceptions?
To explicitly note that you are passing that exception up. In case in the future your method gets called by a different method than the one you were assuming would catch it. Implicit code will always bite you given enough time.

Which would become a waste of both our times. What say we simply agree that both languages have their strengths and weaknesses, and neither are optimally suited for everything?
Except that I've never seen such a comparison ever come to anything other than "Java fixes this stuff in C++. Answer: yeah, but Java is slow," a response which says nothing about the problems pointed out in C++. As Ashton likes to say, "Now we know what your opinions of Java are. Can we talk about C++?".

I said that earlier. I don't agree that Java, or any other language protects one from other people's stupidity. I feel that way about Java especially, because every example of Java code I've seen has been an incomprehensible jumble, including the stuff that is supposed to be "really good stuff".
Would it be poor manners to point out that this is the exact converse of your "you haven't done enough C++ yet" argument...? ;-)

It is my opinion that Java itself lends itself to this, because of its pile-everything-into-the-same-file approach to writing.
Wrong. One class (and associated inner classes) per module. No headers needed. Why? Because the interface information is inscribed in the compiled object. Separating interface out in headers only creates a maintenance hassle, because you have to change TWO files when the interface changes. Not to mention all the necessary #include dependencies. If you want a readable interface document, read the Javadocs. That's what they are there for. Using .h files as interface documentation is a bad idea too.

But I doubt you'd disagree that someone who can make a complete mess of a C++ source file can (and generally will) make an equal mess of an Objective C source file, or a Java source file as well, for that matter.
An equal mess? Not at all. Poor Java code still compiles cross platform and cross compiler. And I will continue to disagree with your assertion that Java doesn't help to protect me against other people's stupidity. Case in point: the virtual keyword in conjunction with using 3rd party libraries.