From 3deb434d8bd843dade5455ff1f202c2d136fa09f Mon Sep 17 00:00:00 2001
From: Steven Hahn <hahnse@ornl.gov>
Date: Wed, 25 Mar 2020 21:43:52 -0400
Subject: [PATCH] use try/catch instead of if/else

Signed-off-by: Steven Hahn <hahnse@ornl.gov>
---
 Framework/API/src/FileLoaderRegistry.cpp | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/Framework/API/src/FileLoaderRegistry.cpp b/Framework/API/src/FileLoaderRegistry.cpp
index e667c6b5a69..f97452a75e6 100644
--- a/Framework/API/src/FileLoaderRegistry.cpp
+++ b/Framework/API/src/FileLoaderRegistry.cpp
@@ -113,10 +113,11 @@ FileLoaderRegistryImpl::chooseLoader(const std::string &filename) const {
     m_log.debug()
         << filename
         << " looks like a Nexus file. Checking registered Nexus loaders\n";
-    bestLoader =
-        searchForLoader<NexusHDF5Descriptor, IFileLoader<NexusHDF5Descriptor>>(
-            filename, m_names[Nexus], m_log);
-    if (!bestLoader) {
+    try {
+      bestLoader = searchForLoader<NexusHDF5Descriptor,
+                                   IFileLoader<NexusHDF5Descriptor>>(
+          filename, m_names[Nexus], m_log);
+    } catch (const std::invalid_argument &) {
       bestLoader =
           searchForLoader<NexusDescriptor, IFileLoader<NexusDescriptor>>(
               filename, m_names[Nexus], m_log);
-- 
GitLab