From 2a2e50176f85dc4ee885c3af68163be9c0f85ae7 Mon Sep 17 00:00:00 2001 From: Lucas Gracioso <34951068+lbgracioso@users.noreply.github.com> Date: Wed, 28 Feb 2024 11:12:50 -0300 Subject: [PATCH] Fix 'throw' messages throughout the code (#46) * Fix 'throw' messages throughout the code Signed-off-by: lbgracioso * Fix clang-format bug on os.cpp Signed-off-by: lbgracioso --------- Signed-off-by: lbgracioso --- src/cluster.cpp | 10 +++++++--- src/network.cpp | 12 ++++++++---- src/os.cpp | 12 ++++++++---- src/view/newtOkCancelMessage.cpp | 3 ++- 4 files changed, 25 insertions(+), 12 deletions(-) diff --git a/src/cluster.cpp b/src/cluster.cpp index efa7ac1e..70ca1059 100644 --- a/src/cluster.cpp +++ b/src/cluster.cpp @@ -82,7 +82,8 @@ const std::string& Cluster::getDomainName() const { return m_domainName; } void Cluster::setDomainName(const std::string& domainName) { if (domainName.size() > 255) - throw; + throw std::length_error("Domain name exceeds the maximum allowed " + "length of 255 characters."); #if __cpp_lib_starts_ends_with >= 201711L if (domainName.starts_with('-') or domainName.ends_with('-')) @@ -94,11 +95,14 @@ void Cluster::setDomainName(const std::string& domainName) /* Check if string has only digits */ if (std::regex_match(domainName, std::regex("^[0-9]+$"))) - throw; + throw std::invalid_argument( + "Domain name should not consist solely of numeric digits."); /* Check if it's not only alphanumerics and - */ if (!(std::regex_match(domainName, std::regex("^[A-Za-z0-9-.]+$")))) - throw; + throw std::invalid_argument( + "Domain name contains invalid characters. Only alphanumeric " + "characters and hyphens are allowed."); m_domainName = domainName; diff --git a/src/network.cpp b/src/network.cpp index 7a395ef0..8d47eb0d 100644 --- a/src/network.cpp +++ b/src/network.cpp @@ -277,7 +277,7 @@ uint16_t Network::getVLAN() const { return m_vlan; } void Network::setVLAN(uint16_t vlan) { if (vlan >= 4096) - throw; + throw std::out_of_range("VLAN value must be less than 4096."); m_vlan = vlan; } @@ -286,7 +286,8 @@ const std::string& Network::getDomainName() const { return m_domainName; } void Network::setDomainName(const std::string& domainName) { if (domainName.size() > 255) - throw; + throw std::length_error("Domain name exceeds the maximum allowed " + "length of 255 characters."); #if __cpp_lib_starts_ends_with >= 201711L if (domainName.starts_with('-') or domainName.ends_with('-')) @@ -298,11 +299,14 @@ void Network::setDomainName(const std::string& domainName) /* Check if string has only digits */ if (std::regex_match(domainName, std::regex("^[0-9]+$"))) - throw; + throw std::invalid_argument( + "Domain name should not consist solely of numeric digits."); /* Check if it's not only alphanumerics and - */ if (!(std::regex_match(domainName, std::regex("^[A-Za-z0-9-.]+$")))) - throw; + throw std::invalid_argument( + "Domain name contains invalid characters. Only alphanumeric " + "characters and hyphens are allowed."); m_domainName = domainName; } diff --git a/src/os.cpp b/src/os.cpp index ab0ecb16..205018d5 100644 --- a/src/os.cpp +++ b/src/os.cpp @@ -41,7 +41,8 @@ OS::OS() if (!file.is_open()) { perror(("Error while opening file " + filename).c_str()); - throw; /* Error opening file */ + throw std::runtime_error( + fmt::format("Error while opening file: {}", filename)); } /* Fetches OS information from /etc/os-release. The file is writen in a @@ -83,7 +84,8 @@ OS::OS() if (file.bad()) { perror(("Error while reading file " + filename).c_str()); - throw; /* Error while reading file */ + throw std::runtime_error( + fmt::format("Error while reading file: {}", filename)); } } } @@ -177,7 +179,8 @@ unsigned int OS::getMajorVersion() const { return m_majorVersion; } void OS::setMajorVersion(unsigned int majorVersion) { if (majorVersion < 8) - throw; /* Unsupported release */ + throw std::runtime_error( + "Unsupported release: Major version must be 8 or greater."); m_majorVersion = majorVersion; } @@ -187,7 +190,8 @@ unsigned int OS::getMinorVersion() const { return m_minorVersion; } void OS::setMinorVersion(unsigned int minorVersion) { if (minorVersion < 1) - throw; /* Unsupported minor release */ + throw std::runtime_error( + "Unsupported release: Minor version must be 1 or greater."); m_minorVersion = minorVersion; } diff --git a/src/view/newtOkCancelMessage.cpp b/src/view/newtOkCancelMessage.cpp index b5894ce8..c32ccb24 100644 --- a/src/view/newtOkCancelMessage.cpp +++ b/src/view/newtOkCancelMessage.cpp @@ -29,7 +29,8 @@ void Newt::okCancelMessage(const char* title, const char* message) abort(); break; default: - throw; + throw std::runtime_error( + "Something happened. Please run the software again"); } }