diff --git a/Base/Axis/Scale.cpp b/Base/Axis/Scale.cpp
index a02f21b1b6dddd95f310ac8b34c4791641e3da36..d9d2c33ff45f87f66504c931963cbac956e09e39 100644
--- a/Base/Axis/Scale.cpp
+++ b/Base/Axis/Scale.cpp
@@ -149,6 +149,8 @@ bool Scale::isScan() const
 
 Scale Scale::clipped(double lower, double upper) const
 {
+    if (lower > upper)
+        throw std::runtime_error("Scale::clipped called with invalid bounds (lower > upper)");
     std::vector<Bin1D> out_bins;
     const bool is_scan = isScan();
     for (const Bin1D& b : m_bins)
diff --git a/Sim/Fitting/SimDataPair.cpp b/Sim/Fitting/SimDataPair.cpp
index fda76323f78ac1fe6c827273ff51209f82093d30..51465004a0fd54c4af6de6a97686a67e7b5e8a63 100644
--- a/Sim/Fitting/SimDataPair.cpp
+++ b/Sim/Fitting/SimDataPair.cpp
@@ -140,21 +140,25 @@ bool SimDataPair::containsUncertainties() const
 
 Datafield SimDataPair::simulationResult() const
 {
-    ASSERT(m_sim_data);
+    if (!m_sim_data)
+        throw std::runtime_error("SimDataPair::simulationResult() called before sim_data were set");
     ASSERT(!m_sim_data->empty());
     return *m_sim_data;
 }
 
 Datafield SimDataPair::experimentalData() const
 {
-    ASSERT(m_exp_data);
+    if (!m_exp_data)
+        throw std::runtime_error("SimDataPair::experimentalData() called before exp_data were set");
     ASSERT(!m_exp_data->empty());
     return *m_exp_data;
 }
 
 Datafield SimDataPair::uncertainties() const
 {
-    ASSERT(m_uncertainties);
+    if (!m_uncertainties)
+        throw std::runtime_error(
+            "SimDataPair::uncertainties() called before uncertainties were set");
     ASSERT(!m_uncertainties->empty());
     return *m_uncertainties;
 }
@@ -162,7 +166,8 @@ Datafield SimDataPair::uncertainties() const
 //! Returns the user uncertainties cut to the ROI area.
 Datafield SimDataPair::userWeights() const
 {
-    ASSERT(m_user_weights);
+    if (!m_user_weights)
+        throw std::runtime_error("SimDataPair::userWeights() called before user_weights were set");
     ASSERT(!m_user_weights->empty());
     return *m_user_weights;
 }