From 3e70226a69e32e2282e405b61d0d679fd96370aa Mon Sep 17 00:00:00 2001 From: Dane Springmeyer Date: Wed, 17 Apr 2013 15:28:48 -0700 Subject: [PATCH] also translate std::out_of_bounds => IndexError otherwise new std::exception => runtime catch will override - refs #1816 --- bindings/python/mapnik_python.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) 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();