mikehearn, the boost python library has pretty seamless C++ to Python exception translation that by default handles some of the standard C++ exception types, and allows you to provide custom exception translation functions.
An example is given
here.

Do you think that it's better for exceptions to be defined by the OS or the runtime environment, given that not all languages support exceptions, and the definition of an exception and exception handling semantics vary between languages?