From c9b2423aaed459c68dd8f43b1de0edee4eb287c8 Mon Sep 17 00:00:00 2001 From: Neil Date: Fri, 28 May 2021 14:46:21 +1000 Subject: Better exception handling for noexcept methods. More accurate noexcept marking. --- src/CaseConvert.cxx | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'src/CaseConvert.cxx') diff --git a/src/CaseConvert.cxx b/src/CaseConvert.cxx index 03dbce4e9..fd1bee2c9 100644 --- a/src/CaseConvert.cxx +++ b/src/CaseConvert.cxx @@ -588,7 +588,13 @@ class CaseConverter : public ICaseConverter { } CharacterConversion(int character_, std::string_view conversion_) noexcept : character(character_) { assert(conversion_.length() <= maxConversionLength); - conversion_.copy(conversion.conversion, conversion_.length()); + try { + // This can never fail as std::string_view::copy should only throw + // std::out_of_range if pos > size() and pos == 0 here + conversion_.copy(conversion.conversion, conversion_.length()); + } catch (...) { + // Ignore any exception + } } bool operator<(const CharacterConversion &other) const noexcept { return character < other.character; -- cgit v1.2.3