Commit e34ad9cd9503c1b1d3393a6d527abff15cc94be8
1 parent
1f9623b4
Add generic catch for GammaLib exceptions.
There were some problems on Mac OS X 10.7 with catching of GammaLib exceptions (see bugs #681, #680, #626). These could be solved by adding a generic catch of @GExceptionHandler@ to the Python interface exception handler. Some of the old specific exceptions have also been removed.
Showing
1 changed file
with
9 additions
and
10 deletions
pyext/GException.i
| 1 | /*************************************************************************** | 1 | /*************************************************************************** |
| 2 | - * GException.i - exception handler * | 2 | + * GException.i - exception handler * |
| 3 | * ----------------------------------------------------------------------- * | 3 | * ----------------------------------------------------------------------- * |
| 4 | - * copyright (C) 2008-2011 by Jurgen Knodlseder * | 4 | + * copyright (C) 2008-2012 by Juergen Knoedlseder * |
| 5 | * ----------------------------------------------------------------------- * | 5 | * ----------------------------------------------------------------------- * |
| 6 | * * | 6 | * * |
| 7 | * This program is free software: you can redistribute it and/or modify * | 7 | * This program is free software: you can redistribute it and/or modify * |
| @@ -18,6 +18,11 @@ | @@ -18,6 +18,11 @@ | ||
| 18 | * along with this program. If not, see <http://www.gnu.org/licenses/>. * | 18 | * along with this program. If not, see <http://www.gnu.org/licenses/>. * |
| 19 | * * | 19 | * * |
| 20 | ***************************************************************************/ | 20 | ***************************************************************************/ |
| 21 | +/** | ||
| 22 | + * @file GException.i | ||
| 23 | + * @brief Exception handler for Python interface | ||
| 24 | + * @author Juergen Knoedlseder | ||
| 25 | + */ | ||
| 21 | %{ | 26 | %{ |
| 22 | /* Put headers and other declarations here */ | 27 | /* Put headers and other declarations here */ |
| 23 | #include "GException.hpp" | 28 | #include "GException.hpp" |
| @@ -28,17 +33,11 @@ | @@ -28,17 +33,11 @@ | ||
| 28 | try { | 33 | try { |
| 29 | $action | 34 | $action |
| 30 | } | 35 | } |
| 31 | - catch (const GException::mem_alloc& e) { | ||
| 32 | - SWIG_exception(SWIG_MemoryError, e.what()); | ||
| 33 | - } | ||
| 34 | - catch (const GException::empty& e) { | ||
| 35 | - SWIG_exception(SWIG_ValueError, e.what()); | ||
| 36 | - } | ||
| 37 | catch (const GException::out_of_range& e) { | 36 | catch (const GException::out_of_range& e) { |
| 38 | SWIG_exception(SWIG_IndexError, e.what()); | 37 | SWIG_exception(SWIG_IndexError, e.what()); |
| 39 | } | 38 | } |
| 40 | - catch (const GException::fits_invalid_type& e) { | ||
| 41 | - SWIG_exception(SWIG_ValueError, e.what()); | 39 | + catch (const GExceptionHandler& e) { |
| 40 | + SWIG_exception(SWIG_RuntimeError, e.what()); | ||
| 42 | } | 41 | } |
| 43 | catch (const std::exception& e) { | 42 | catch (const std::exception& e) { |
| 44 | SWIG_exception(SWIG_RuntimeError, e.what()); | 43 | SWIG_exception(SWIG_RuntimeError, e.what()); |