Index: src/sas/sascalc/dataloader/loader.py
===================================================================
--- src/sas/sascalc/dataloader/loader.py	(revision 3ece5dd0ab4005c590b101addcee167772e5954b)
+++ src/sas/sascalc/dataloader/loader.py	(revision 8dec7e72746c7b410e4a41ad46431efab344c6c2)
@@ -85,5 +85,4 @@
             # TODO: handle error
             raise RuntimeError(e)
-            pass
         try:
             cansas_loader = cansas_reader.Reader()
@@ -94,5 +93,4 @@
             # TODO: Handle errors properly
             raise RuntimeError(e)
-            pass
         except Exception as csr:
             # TODO: Modify cansas reader to throw DefaultReaderException
@@ -101,14 +99,13 @@
             cansas_nexus_loader = cansas_reader_HDF5.Reader()
             return cansas_nexus_loader.read(path)
-        except DefaultReaderException:
-            logging.errors("No default loader can load the data")
+        except DefaultReaderException as e:
+            logging.error("No default loader can load the data")
             # No known reader available. Give up and throw an error
             msg = "\n\tUnknown data format: %s.\n\tThe file is not a " % path
             msg += "known format that can be loaded by SasView.\n"
-            msg += "Traceback:\n%s" % e.message
             raise NoKnownLoaderException, msg
-        except FileContentsException:
+        except FileContentsException as e:
             # TODO: Handle error(s) properly
-            pass
+            raise RuntimeError(e)
 
     def find_plugins(self, dir):
Index: src/sas/sascalc/dataloader/readers/cansas_reader.py
===================================================================
--- src/sas/sascalc/dataloader/readers/cansas_reader.py	(revision 0b79323fac12d588a7dd4982f986cf1a2ac3e8de)
+++ src/sas/sascalc/dataloader/readers/cansas_reader.py	(revision 8dec7e72746c7b410e4a41ad46431efab344c6c2)
@@ -108,8 +108,9 @@
 
         basename, _ = os.path.splitext(os.path.basename(xml_file))
-        # Raises FileContentsException - handled by superclass
-        self.load_file_and_schema(xml_file, schema_path)
-        self.current_datainfo = DataInfo()
+
         try:
+            # Raises FileContentsException
+            self.load_file_and_schema(xml_file, schema_path)
+            self.current_datainfo = DataInfo()
             # Raises FileContentsException if file doesn't meet CanSAS schema
             self.is_cansas(self.extension)
Index: src/sas/sascalc/dataloader/readers/cansas_reader_HDF5.py
===================================================================
--- src/sas/sascalc/dataloader/readers/cansas_reader_HDF5.py	(revision 9d786e572492d279fc9ae1e2c7ca8c4c8e855623)
+++ src/sas/sascalc/dataloader/readers/cansas_reader_HDF5.py	(revision 8dec7e72746c7b410e4a41ad46431efab344c6c2)
@@ -13,5 +13,5 @@
     TransmissionSpectrum, Detector
 from sas.sascalc.dataloader.data_info import combine_data_info_with_plottable
-from sas.sascalc.dataloader.loader_exceptions import FileContentsException
+from sas.sascalc.dataloader.loader_exceptions import FileContentsException, DefaultReaderException
 from sas.sascalc.dataloader.file_reader_base_class import FileReader
 
@@ -78,5 +78,8 @@
                     self.raw_data = h5py.File(filename, 'r')
                 except Exception as e:
-                    raise FileContentsException, e
+                    if extension not in self.ext:
+                        msg = "CanSAS2.0 HDF5 Reader could not load file {}".format(basename + extension)
+                        raise DefaultReaderException(msg)
+                    raise FileContentsException(e.message)
                 # Read in all child elements of top level SASroot
                 self.read_children(self.raw_data, [])
Index: src/sas/sasgui/guiframe/local_perspectives/data_loader/data_loader.py
===================================================================
--- src/sas/sasgui/guiframe/local_perspectives/data_loader/data_loader.py	(revision 235f514ba93b57fa63e44309f182acef0b98bb55)
+++ src/sas/sasgui/guiframe/local_perspectives/data_loader/data_loader.py	(revision 8dec7e72746c7b410e4a41ad46431efab344c6c2)
@@ -224,8 +224,9 @@
             except NoKnownLoaderException as e:
                 logging.error(e.message)
+                error_message = "Loading data failed!\n" + e.message
                 self.load_update(output=None, message=e.message, info="warning")
                 self.load_complete(output=None,
-                                   message="Loading data failed!",
-                                   info="warning")
+                                   message=error_message,
+                                   info="error")
             except:
                 logger.error(sys.exc_value)
@@ -268,3 +269,4 @@
         wx.PostEvent(self.parent, StatusEvent(status=message, info=info,
                                               type="stop"))
-        self.parent.add_data(data_list=output)
+        if output is not None:
+            self.parent.add_data(data_list=output)
