diff --git a/libgnucash/engine/gnc-numeric.cpp b/libgnucash/engine/gnc-numeric.cpp index 040845a31f..b99cb8586f 100644 --- a/libgnucash/engine/gnc-numeric.cpp +++ b/libgnucash/engine/gnc-numeric.cpp @@ -1004,6 +1004,10 @@ gnc_numeric_convert(gnc_numeric in, int64_t denom, int how) { return convert(GncNumeric(in), denom, how); } + catch (const std::invalid_argument& err) + { + return gnc_numeric_error(GNC_ERROR_OVERFLOW); + } catch (const std::overflow_error& err) { return gnc_numeric_error(GNC_ERROR_OVERFLOW); @@ -1012,6 +1016,10 @@ gnc_numeric_convert(gnc_numeric in, int64_t denom, int how) { return gnc_numeric_error(GNC_ERROR_OVERFLOW); } + catch (const std::domain_error& err) + { + return gnc_numeric_error(GNC_ERROR_REMAINDER); + } }