diff --git a/lib/icinga/legacytimeperiod.cpp b/lib/icinga/legacytimeperiod.cpp index b346d3bc0..5c7d64b5f 100644 --- a/lib/icinga/legacytimeperiod.cpp +++ b/lib/icinga/legacytimeperiod.cpp @@ -289,11 +289,7 @@ void LegacyTimePeriod::ParseTimeRange(const String& timerange, tm *begin, tm *en String second = def.SubStr(pos + 1); second.Trim(); - try { - ParseTimeSpec(first, begin, NULL, reference); - } catch (std::exception&) { - throw; - } + ParseTimeSpec(first, begin, NULL, reference); /* If the second definition starts with a number we need * to add the first word from the first definition, e.g.: @@ -314,17 +310,9 @@ void LegacyTimePeriod::ParseTimeRange(const String& timerange, tm *begin, tm *en second = first.SubStr(0, xpos + 1) + second; } - try { - ParseTimeSpec(second, NULL, end, reference); - } catch (std::exception&) { - throw; - } + ParseTimeSpec(second, NULL, end, reference); } else { - try { - ParseTimeSpec(def, begin, end, reference); - } catch (std::exception&) { - throw; - } + ParseTimeSpec(def, begin, end, reference); } } @@ -381,11 +369,7 @@ Dictionary::Ptr LegacyTimePeriod::ProcessTimeRange(const String& timestamp, tm * { tm begin, end; - try { - ProcessTimeRangeRaw(timestamp, reference, &begin, &end); - } catch (std::exception&) { - throw; - } + ProcessTimeRangeRaw(timestamp, reference, &begin, &end); Dictionary::Ptr segment = new Dictionary(); segment->Set("begin", (long)mktime(&begin)); @@ -400,12 +384,7 @@ void LegacyTimePeriod::ProcessTimeRanges(const String& timeranges, tm *reference boost::algorithm::split(ranges, timeranges, boost::is_any_of(",")); BOOST_FOREACH(const String& range, ranges) { - Dictionary::Ptr segment; - try { - segment = ProcessTimeRange(range, reference); - } catch (std::exception&) { - throw; - } + Dictionary::Ptr segment = ProcessTimeRange(range, reference); if (segment->Get("begin") >= segment->Get("end")) continue; diff --git a/lib/icinga/scheduleddowntime.cpp b/lib/icinga/scheduleddowntime.cpp index c5cb01247..8428738a5 100644 --- a/lib/icinga/scheduleddowntime.cpp +++ b/lib/icinga/scheduleddowntime.cpp @@ -197,14 +197,14 @@ void ScheduledDowntime::ValidateRanges(const Dictionary::Ptr& value, const Valid tm begin_tm, end_tm; int stride; LegacyTimePeriod::ParseTimeRange(kv.first, &begin_tm, &end_tm, &stride, &reference); - } catch (std::exception&) { - BOOST_THROW_EXCEPTION(ValidationError(this, boost::assign::list_of("ranges"), "Invalid time specification: " + kv.first)); + } catch (const std::exception& ex) { + BOOST_THROW_EXCEPTION(ValidationError(this, boost::assign::list_of("ranges"), "Invalid time specification '" + kv.first + "': " + ex.what())); } try { LegacyTimePeriod::ProcessTimeRanges(kv.second, &reference, segments); - } catch (std::exception&) { - BOOST_THROW_EXCEPTION(ValidationError(this, boost::assign::list_of("ranges"), "Invalid time range definition: " + kv.first)); + } catch (const std::exception& ex) { + BOOST_THROW_EXCEPTION(ValidationError(this, boost::assign::list_of("ranges"), "Invalid time range definition '" + kv.second + "': " + ex.what())); } } } diff --git a/lib/icinga/timeperiod.cpp b/lib/icinga/timeperiod.cpp index 8cd0acd52..2611a7ed3 100644 --- a/lib/icinga/timeperiod.cpp +++ b/lib/icinga/timeperiod.cpp @@ -322,14 +322,14 @@ void TimePeriod::ValidateRanges(const Dictionary::Ptr& value, const ValidationUt tm begin_tm, end_tm; int stride; LegacyTimePeriod::ParseTimeRange(kv.first, &begin_tm, &end_tm, &stride, &reference); - } catch (std::exception&) { - BOOST_THROW_EXCEPTION(ValidationError(this, boost::assign::list_of("ranges"), "Invalid time specification: " + kv.first)); + } catch (const std::exception& ex) { + BOOST_THROW_EXCEPTION(ValidationError(this, boost::assign::list_of("ranges"), "Invalid time specification '" + kv.first + "': " + ex.what())); } try { LegacyTimePeriod::ProcessTimeRanges(kv.second, &reference, segments); - } catch (std::exception&) { - BOOST_THROW_EXCEPTION(ValidationError(this, boost::assign::list_of("ranges"), "Invalid time range definition: " + kv.second)); + } catch (const std::exception& ex) { + BOOST_THROW_EXCEPTION(ValidationError(this, boost::assign::list_of("ranges"), "Invalid time range definition '" + kv.second + "': " + ex.what())); } } }