diff --git a/Framework/DataHandling/inc/MantidDataHandling/LoadEventNexus.h b/Framework/DataHandling/inc/MantidDataHandling/LoadEventNexus.h
index 4536b6cfc1a11b0e1bda8da628f0e39299c9974f..6c8dbfbddb6f832481c73c8464860ca17c766342 100644
--- a/Framework/DataHandling/inc/MantidDataHandling/LoadEventNexus.h
+++ b/Framework/DataHandling/inc/MantidDataHandling/LoadEventNexus.h
@@ -638,32 +638,36 @@ void LoadEventNexus::loadEntryMetadata(const std::string &nexusfilename, T WS,
   // appropriate state
   try {
     file.openGroup("sample", "NXsample");
-    if (exists(file, "name")) {
-      file.openData("name");
-      const auto info = file.getInfo();
-      std::string name;
-      if (info.type == ::NeXus::CHAR) {
-        if (info.dims.size() == 1) {
-          name = file.getStrData();
-        } else { // something special for 2-d array
-          const int64_t total_length = std::accumulate(
-              info.dims.begin(), info.dims.end(), static_cast<int64_t>(1),
-              std::multiplies<int64_t>());
-          boost::scoped_array<char> val_array(new char[total_length]);
-          file.getData(val_array.get());
-          file.closeData();
-          name = std::string(val_array.get(), total_length);
+    try {
+      if (exists(file, "name")) {
+        file.openData("name");
+        const auto info = file.getInfo();
+        std::string name;
+        if (info.type == ::NeXus::CHAR) {
+          if (info.dims.size() == 1) {
+            name = file.getStrData();
+          } else { // something special for 2-d array
+            const int64_t total_length = std::accumulate(
+                info.dims.begin(), info.dims.end(), static_cast<int64_t>(1),
+                std::multiplies<int64_t>());
+            boost::scoped_array<char> val_array(new char[total_length]);
+            file.getData(val_array.get());
+            file.closeData();
+            name = std::string(val_array.get(), total_length);
+          }
         }
-      }
-      file.closeData();
+        file.closeData();
 
-      if (!name.empty()) {
-        WS->mutableSample().setName(name);
+        if (!name.empty()) {
+          WS->mutableSample().setName(name);
+        }
       }
+    } catch (::NeXus::Exception &) {
+      // let it drop on floor if an exception occurs while reading sample
     }
     file.closeGroup();
   } catch (::NeXus::Exception &) {
-    // let it drop on floor
+    // If an exception occurs while opening the group "sample"
   }
 
   // get the duration