diff --git a/libgnucash/app-utils/gnc-optiondb.cpp b/libgnucash/app-utils/gnc-optiondb.cpp index 452b7bca79..70a8dc0612 100644 --- a/libgnucash/app-utils/gnc-optiondb.cpp +++ b/libgnucash/app-utils/gnc-optiondb.cpp @@ -888,10 +888,17 @@ gnc_register_number_range_option(GncOptionDB* db, const char* section, const char* doc_string, ValueType value, ValueType min, ValueType max, ValueType step) { - GncOption option{GncOptionRangeValue{section, name, key, - doc_string, value, min, - max, step}}; - db->register_option(section, std::move(option)); + try + { + GncOption option{GncOptionRangeValue{section, name, key, + doc_string, value, min, + max, step}}; + db->register_option(section, std::move(option)); + } + catch(const std::invalid_argument& err) + { + std::cerr <<"Number Range Option " << err.what() << ", option not registerd.\n"; + } } void diff --git a/libgnucash/app-utils/gnc-optiondb.i b/libgnucash/app-utils/gnc-optiondb.i index 06bac06d4f..a698fb5745 100644 --- a/libgnucash/app-utils/gnc-optiondb.i +++ b/libgnucash/app-utils/gnc-optiondb.i @@ -425,10 +425,19 @@ wrap_unique_ptr(GncOptionDBPtr, GncOptionDB); auto db_opt = optiondb->find_option(section, name); if (!db_opt) { -// PWARN("Attempt to write non-existent option %s/%s", section, name); + std::cerr <<"Attempt to write non-existent option " << section + << "/" << name; return; } - GncOption_set_value_from_scm(db_opt, new_value); + try + { + GncOption_set_value_from_scm(db_opt, new_value); + } + catch(const std::invalid_argument& err) + { + std::cerr << "Failed to set option " << section << "/" << name + << ": " << err.what() << "\n"; + } } GncOptionDBPtr