@@ -159,7 +159,7 @@ namespace dsm {
159159 requires (is_numeric_v<delay_t >)
160160 void Agent<delay_t >::setSpeed(double speed) {
161161 if (speed < 0 ) {
162- throw std::invalid_argument ( buildLog ( " Speed must be positive" ));
162+ logger. error ( std::format ( " Speed ({}) of agent {} must be positive" , speed, m_id ));
163163 }
164164 m_speed = speed;
165165 }
@@ -184,23 +184,26 @@ namespace dsm {
184184 requires (is_numeric_v<delay_t >)
185185 void Agent<delay_t >::incrementDelay() {
186186 if (m_delay == std::numeric_limits<delay_t >::max ()) {
187- throw std::overflow_error (buildLog (" delay_t has reached its maximum value" ));
187+ throw std::overflow_error (
188+ logger.buildExceptionMessage (" delay_t has reached its maximum value" ));
188189 }
189190 ++m_delay;
190191 }
191192 template <typename delay_t >
192193 requires (is_numeric_v<delay_t >)
193194 void Agent<delay_t >::incrementDelay(delay_t const delay) {
194195 if (m_delay + delay < m_delay) {
195- throw std::overflow_error (buildLog (" delay_t has reached its maximum value" ));
196+ throw std::overflow_error (
197+ logger.buildExceptionMessage (" delay_t has reached its maximum value" ));
196198 }
197199 m_delay += delay;
198200 }
199201 template <typename delay_t >
200202 requires (is_numeric_v<delay_t >)
201203 void Agent<delay_t >::decrementDelay() {
202204 if (m_delay == 0 ) {
203- throw std::underflow_error (buildLog (" delay_t has reached its minimum value" ));
205+ throw std::underflow_error (
206+ logger.buildExceptionMessage (" delay_t has reached its minimum value" ));
204207 }
205208 --m_delay;
206209 }
@@ -209,7 +212,8 @@ namespace dsm {
209212 requires (is_numeric_v<delay_t >)
210213 void Agent<delay_t >::incrementDistance(double distance) {
211214 if (distance < 0 ) {
212- throw std::invalid_argument (buildLog (" Distance travelled must be positive" ));
215+ logger.error (std::format (
216+ " Distance travelled ({}) by agent {} must be positive" , distance, m_id));
213217 }
214218 m_distance += distance;
215219 }
@@ -218,15 +222,17 @@ namespace dsm {
218222 requires (is_numeric_v<delay_t >)
219223 void Agent<delay_t >::incrementTime() {
220224 if (m_time == std::numeric_limits<unsigned int >::max ()) {
221- throw std::overflow_error (buildLog (" Time has reached its maximum value" ));
225+ throw std::overflow_error (
226+ logger.buildExceptionMessage (" Time has reached its maximum value" ));
222227 }
223228 ++m_time;
224229 }
225230 template <typename delay_t >
226231 requires (is_numeric_v<delay_t >)
227232 void Agent<delay_t >::incrementTime(unsigned int const time) {
228233 if (m_time + time < m_time) {
229- throw std::overflow_error (buildLog (" Time has reached its maximum value" ));
234+ throw std::overflow_error (
235+ logger.buildExceptionMessage (" Time has reached its maximum value" ));
230236 }
231237 m_time += time;
232238 }
0 commit comments