diff --git a/src/IO/ReadHelpers.h b/src/IO/ReadHelpers.h index 05198361ca2..77e1310aa7a 100644 --- a/src/IO/ReadHelpers.h +++ b/src/IO/ReadHelpers.h @@ -470,13 +470,15 @@ ReturnType readIntTextImpl(T & x, ReadBuffer & buf) } end: - if (has_sign && !has_number) + if (!has_number) { - if constexpr (throw_exception) + if constexpr (!throw_exception) + return ReturnType(false); + if (has_sign) throw Exception(ErrorCodes::CANNOT_PARSE_NUMBER, "Cannot parse number with a sign character but without any numeric character"); - else - return ReturnType(false); + throw Exception(ErrorCodes::CANNOT_PARSE_NUMBER, + "Cannot parse number without any numeric character"); } x = res; if constexpr (is_signed_v)