Question: Exceptions in C++ don't need to be caught (no compile time errors) by the calling function. So it's up to developer's judgment whether to catch them using try/catch (unlike in Java).

Is there a way one can ensure that the exceptions thrown are always caught using try/catch by the calling function?

Answer: 
There was once an attempt to add [dynamic exception specifications](http://en.cppreference.com/w/cpp/language/except_spec) to a function's signature, but since the language could not enforce their accuracy, they were later depreciated. 

In C++11 and forward, we now have the [noexcept specifier](http://en.cppreference.com/w/cpp/language/noexcept_spec).  

Again, if the signature is marked to throw, there is still not requriement that it be handled by the caller. 

---

Depending on the context, you can ensure that exceptional behaviour be handled by coding it into the type system. 

**See:** [std::optional](http://en.cppreference.com/w/cpp/utility/optional) as part of the library fundamentals.
> 
> Is there a way one can ensure that the
>  exceptions thrown are always caught
>  using try/catch by the calling
>  function?
> 
> 
> 

I find it rather funny, that the Java crowd - [including myself](http://dlinsin.blogspot.com/2008/01/wonderful-checked-exceptions.html) - is trying to avoid checked Exceptions. They are trying to work their way around being forced to catch Exceptions by using [RuntimeExceptions](http://java.sun.com/javase/6/docs/api/java/lang/RuntimeException.html).