Index: src/sas/sascalc/dataloader/loader.py
===================================================================
--- src/sas/sascalc/dataloader/loader.py	(revision 270c882bc870c7c9d75e62cd612c28f5cd4e9aaf)
+++ src/sas/sascalc/dataloader/loader.py	(revision 7f75a3fc9b6c1be1b8f3ee54e1879b3fd8f5e4d6)
@@ -70,6 +70,4 @@
         except NoKnownLoaderException as e:
             pass  # try the ASCII reader
-        except FileContentsException as e:
-            pass
         try:
             ascii_loader = ascii_reader.Reader()
@@ -86,8 +84,10 @@
             return cansas_nexus_loader.read(path)
         except FileContentsException:
+            logging.errors("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."
-            raise NoKnownLoaderException(msg)
+            msg += "known format that can be loaded by SasView.\n"
+            msg += "Traceback:\n%s" % e.message
+            raise NoKnownLoaderException, msg
 
     def find_plugins(self, dir):
Index: src/sas/sascalc/dataloader/readers/ascii_reader.py
===================================================================
--- src/sas/sascalc/dataloader/readers/ascii_reader.py	(revision 9a5097cd1c76689d1f997b85ba43d12a95d8f243)
+++ src/sas/sascalc/dataloader/readers/ascii_reader.py	(revision 7f75a3fc9b6c1be1b8f3ee54e1879b3fd8f5e4d6)
@@ -17,4 +17,5 @@
 import os
 from sas.sascalc.dataloader.data_info import Data1D
+from sas.sascalc.dataloader.loader_exceptions import FileContentsException
 
 # Check whether we have a converter available
@@ -173,16 +174,16 @@
                 if not is_data:
                     msg = "ascii_reader: x has no data"
-                    raise RuntimeError, msg
+                    raise FileContentsException, msg
                 # Sanity check
                 if has_error_dy == True and not len(ty) == len(tdy):
                     msg = "ascii_reader: y and dy have different length"
-                    raise RuntimeError, msg
+                    raise FileContentsException, msg
                 if has_error_dx == True and not len(tx) == len(tdx):
                     msg = "ascii_reader: y and dy have different length"
-                    raise RuntimeError, msg
+                    raise FileContentsException, msg
                 # If the data length is zero, consider this as
                 # though we were not able to read the file.
                 if len(tx) == 0:
-                    raise RuntimeError, "ascii_reader: could not load file"
+                    raise FileContentsException, "ascii_reader: could not load file"
 
                 #Let's re-order the data to make cal.
Index: src/sas/sascalc/dataloader/readers/cansas_reader.py
===================================================================
--- src/sas/sascalc/dataloader/readers/cansas_reader.py	(revision 8434365120d0b226f06367f64c21b3bc835e1db5)
+++ src/sas/sascalc/dataloader/readers/cansas_reader.py	(revision 7f75a3fc9b6c1be1b8f3ee54e1879b3fd8f5e4d6)
@@ -29,4 +29,5 @@
 from sas.sascalc.dataloader.readers.xml_reader import XMLreader
 from sas.sascalc.dataloader.readers.cansas_constants import CansasConstants, CurrentLevel
+from sas.sascalc.dataloader.loader_exceptions import FileContentsException
 
 # The following 2 imports *ARE* used. Do not remove either.
@@ -534,5 +535,10 @@
 
         # Load in xml file and get the cansas version from the header
-        self.set_xml_file(xml_file)
+        from lxml import etree
+        try:
+            self.set_xml_file(xml_file)
+        except etree.XMLSyntaxError:
+            msg = "Cansas cannot load this file"
+            raise FileContentsException, msg
         self.cansas_version = self.xmlroot.get("version", "1.0")
 
Index: src/sas/sascalc/dataloader/readers/cansas_reader_HDF5.py
===================================================================
--- src/sas/sascalc/dataloader/readers/cansas_reader_HDF5.py	(revision d0764bfab02091109657cd6607dbfb337e7542f3)
+++ src/sas/sascalc/dataloader/readers/cansas_reader_HDF5.py	(revision 7f75a3fc9b6c1be1b8f3ee54e1879b3fd8f5e4d6)
@@ -13,4 +13,5 @@
     TransmissionSpectrum, Detector
 from sas.sascalc.dataloader.data_info import combine_data_info_with_plottable
+from sas.sascalc.dataloader.loader_exceptions import FileContentsException
 
 
@@ -75,5 +76,8 @@
             if extension in self.ext or self.allow_all:
                 # Load the data file
-                self.raw_data = h5py.File(filename, 'r')
+                try:
+                    self.raw_data = h5py.File(filename, 'r')
+                except Exception as e:
+                    raise FileContentsException, e
                 # Read in all child elements of top level SASroot
                 self.read_children(self.raw_data, [])
Index: src/sas/sascalc/dataloader/readers/xml_reader.py
===================================================================
--- src/sas/sascalc/dataloader/readers/xml_reader.py	(revision a235f71571822c52f74fd1221fcd542805cf1277)
+++ src/sas/sascalc/dataloader/readers/xml_reader.py	(revision 7f75a3fc9b6c1be1b8f3ee54e1879b3fd8f5e4d6)
@@ -70,6 +70,6 @@
             self.xmldoc = etree.parse(self.xml, parser=PARSER)
             self.xmlroot = self.xmldoc.getroot()
-        except etree.XMLSyntaxError as xml_error:
-            logging.info(xml_error)
+        except etree.XMLSyntaxError:
+            raise
         except Exception:
             self.xml = None
