Skip to content
Snippets Groups Projects
Commit 5335116a authored by Giovanni La Mura's avatar Giovanni La Mura
Browse files

Use string concatenation in exception messages

parent 7002255c
No related branches found
No related tags found
No related merge requests found
......@@ -12,39 +12,29 @@
*/
class ListOutOfBoundsException: public std::exception {
protected:
//! \brief Minimum index defined in the List.
int min_index;
//! \brief Maximum index defined in the List.
int max_index;
//! \brief List index requested by user.
int requested_index;
//! Description of the problem.
std::string message;
public:
/**
* \brief Exception instance constructor.
*
* \param requested: `int` The index that was requested.
* \param min: `int` The minimum index allowed by the list.
* \param max: `int` The maximum index allowed by the list.
*/
ListOutOfBoundsException(int requested, int min, int max) {
min_index = min;
max_index = max;
requested_index = requested;
}
/**
* \brief Exception message.
*/
virtual const char* what() const throw() {
std::string message = "Error: requested index ";
message += requested_index;
message += " is out of range [";
message += min_index;
message += ", ";
message += (max_index - 1);
message += "]";
return message.c_str();
}
/**
* \brief Exception instance constructor.
*
* \param requested: `int` The index that was requested.
* \param min: `int` The minimum index allowed by the list.
* \param max: `int` The maximum index allowed by the list.
*/
ListOutOfBoundsException(int requested, int min, int max) {
message = "Error: requested index " + std::to_string(requested)
+ " out of list allowed bounds [" + std::to_string(min) + ", "
+ std::to_string(max - 1) + "]";
}
/**
* \brief Exception message.
*/
virtual const char* what() const throw() {
return message.c_str();
}
};
/**
......@@ -62,7 +52,7 @@ public:
* a contiguous array of type T[SIZE] that can be used for indexed access.
*/
template<class T> class List {
protected:
protected:
int size; //!< Size of the List.
struct element {
T value; //!< Value of the list element.
......@@ -72,7 +62,7 @@ template<class T> class List {
*first, //!< Pointer to the first element in the List.
*last; //!< Pointer to the last element in the List.
public:
public:
/*! \brief List constructor.
*
* Use the constructor `List<T>([int length])` to create a new list with a given
......@@ -176,7 +166,7 @@ template<class T> class List {
*/
void set(int index, T value) {
if (index < 0 || index > size - 1) {
throw ListOutOfBoundsException(index, 0, size - 1);
throw ListOutOfBoundsException(index, 0, size - 1);
}
current = last;
for (int i = size - 1; i > index; i--) current = current->p_prev;
......
......@@ -265,7 +265,7 @@ ScattererConfiguration* ScattererConfiguration::from_binary(string file_name, st
try {
xi_vec = new double[nxi]();
} catch (const bad_alloc &ex) {
throw UnrecognizedConfigurationException("Wrong parameter set: invalid number of scales " + nxi);
throw UnrecognizedConfigurationException("Wrong parameter set: invalid number of scales " + to_string(nxi));
}
for (int i = 0; i < nxi; i++) {
input.read(reinterpret_cast<char *>(&(xi_vec[i])), sizeof(double));
......@@ -285,7 +285,7 @@ ScattererConfiguration* ScattererConfiguration::from_binary(string file_name, st
try {
rcf_vector[i115 - 1] = new double[nsh]();
} catch (const bad_alloc &ex) {
throw UnrecognizedConfigurationException("Wrong parameter set: invalid number of layers " + nsh);
throw UnrecognizedConfigurationException("Wrong parameter set: invalid number of layers " + to_string(nsh));
}
for (int nsi = 0; nsi < nsh; nsi++) {
input.read(reinterpret_cast<char *>(&(rcf_vector[i115 - 1][nsi])), sizeof(double));
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment