A more ergonomic way to do that would probably make people stop complaining so much.
This problem is especially noticeable when using lambdas. If you're implementing an interface that doesn't have a throws clause, but the body calls something that throws a checked exception, you _have_ to introduce a try/catch to your lambda body. You don't get to re-throw it without wrapping it in a RuntimeException.
Nowadays I spend most of my time on other languages and while it is more ergonomic, I do spend more time reading documentation regarding possible errors.
Just that instead of being a compiler error like in Java, the unexpected() handler is called; which by default calls terminate() to kill the application.
This behaviour has been removed in C++17.
However C++23 might introduce a similar syntax for value type exceptions, but following up semantics similar to how Swift does it.