diff --git a/tests/ExecuteNetwork/ArmNNExecutor.cpp b/tests/ExecuteNetwork/ArmNNExecutor.cpp
index d1892f9..1e409e8 100644
--- a/tests/ExecuteNetwork/ArmNNExecutor.cpp
+++ b/tests/ExecuteNetwork/ArmNNExecutor.cpp
@@ -28,8 +28,6 @@
     m_IOInfo = GetIOInfo(optNet.get());
     SetupInputsAndOutputs();
 
-    std::string errorMsg;
-
     armnn::ProfilingDetailsMethod profilingDetailsMethod = ProfilingDetailsMethod::Undefined;
     if (params.m_OutputDetailsOnlyToStdOut)
     {
@@ -46,7 +44,18 @@
                                          params.m_EnableProfiling,
                                          profilingDetailsMethod};
 
-    m_Runtime->LoadNetwork(m_NetworkId, std::move(optNet), errorMsg, networkProperties);
+    std::string errorMsg;
+    Status status = m_Runtime->LoadNetwork(m_NetworkId, std::move(optNet), errorMsg, networkProperties);
+    if (status != Status::Success)
+    {
+        std::string message("Failed to create Arm NN Executor: ");
+        message.append(errorMsg);
+        // Throwing an exception at this point in the constructor causes lots of problems. We'll instead mark this
+        // executor as not constructed.
+        ARMNN_LOG(fatal) << message;
+        m_constructionFailed = true;
+        return;
+    }
 
     if (m_Params.m_Iterations > 1)
     {
diff --git a/tests/ExecuteNetwork/ExecuteNetwork.cpp b/tests/ExecuteNetwork/ExecuteNetwork.cpp
index e9ebd0d..c6c8cc0 100644
--- a/tests/ExecuteNetwork/ExecuteNetwork.cpp
+++ b/tests/ExecuteNetwork/ExecuteNetwork.cpp
@@ -55,13 +55,22 @@
     }
 
     std::vector<const void*> outputResults;
-
-    auto executor = BuildExecutor(programOptions);
-    if (!executor)
+    std::unique_ptr<IExecutor> executor;
+    try
     {
+        executor = BuildExecutor(programOptions);
+        if (executor->m_constructionFailed)
+        {
+            return EXIT_FAILURE;
+        }
+    }
+    catch (const std::exception& e)
+    {
+        ARMNN_LOG(fatal) << e.what();
         return EXIT_FAILURE;
     }
 
+
     executor->PrintNetworkInfo();
     outputResults = executor->Execute();
 
diff --git a/tests/ExecuteNetwork/IExecutor.hpp b/tests/ExecuteNetwork/IExecutor.hpp
index 4ed6cbd..21ec904 100644
--- a/tests/ExecuteNetwork/IExecutor.hpp
+++ b/tests/ExecuteNetwork/IExecutor.hpp
@@ -19,4 +19,5 @@
     /// Compare the output with the result of another IExecutor
     virtual void CompareAndPrintResult(std::vector<const void*> otherOutput) = 0;
     virtual ~IExecutor(){};
+    bool m_constructionFailed = false;
 };
