Add support for catching native exceptions and re-raising them as uPy errors