diff --git a/bindings/python/mapnik_python.cpp b/bindings/python/mapnik_python.cpp index cf82f3141..bb187fe4d 100644 --- a/bindings/python/mapnik_python.cpp +++ b/bindings/python/mapnik_python.cpp @@ -295,6 +295,11 @@ void runtime_error_translator(std::runtime_error const & ex) PyErr_SetString(PyExc_RuntimeError, ex.what()); } +void out_of_range_error_translator(std::out_of_range const & ex) +{ + PyErr_SetString(PyExc_IndexError, ex.what()); +} + void standard_error_translator(std::exception const & ex) { PyErr_SetString(PyExc_RuntimeError, ex.what()); @@ -369,11 +374,11 @@ BOOST_PYTHON_MODULE(_mapnik) using mapnik::save_map_to_string; using mapnik::render_grid; + register_exception_translator(&standard_error_translator); + register_exception_translator(&out_of_range_error_translator); register_exception_translator(&config_error_translator); register_exception_translator(&value_error_translator); register_exception_translator(&runtime_error_translator); - // catch the rest - register_exception_translator(&standard_error_translator); register_cairo(); export_query(); export_geometry();