diff --git a/Framework/API/src/FileLoaderRegistry.cpp b/Framework/API/src/FileLoaderRegistry.cpp index e667c6b5a69f650d3b9b238cd80a5a6131845841..f97452a75e6f20d00617e0221f6579dae3e2a862 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);