Index: src/sas/sascalc/dataloader/loader.py
===================================================================
--- src/sas/sascalc/dataloader/loader.py	(revision b9b612aaa6fa09a6a967f55d93480819b20ee7d4)
+++ src/sas/sascalc/dataloader/loader.py	(revision 270c882bc870c7c9d75e62cd612c28f5cd4e9aaf)
@@ -1,5 +1,5 @@
 """
     File handler to support different file extensions.
-    Uses reflectometry's registry utility.
+    Uses reflectometer registry utility.
 
     The default readers are found in the 'readers' sub-module
@@ -29,7 +29,9 @@
 # Default readers are defined in the readers sub-module
 import readers
+from loader_exceptions import NoKnownLoaderException, FileContentsException
 from readers import ascii_reader
 from readers import cansas_reader
 from readers import cansas_reader_HDF5
+
 
 class Registry(ExtensionRegistry):
@@ -38,15 +40,14 @@
     Readers and writers are supported.
     """
-
     def __init__(self):
         super(Registry, self).__init__()
 
-        ## Writers
+        # Writers
         self.writers = {}
 
-        ## List of wildcards
+        # List of wildcards
         self.wildcards = ['All (*.*)|*.*']
 
-        ## Creation time, for testing
+        # Creation time, for testing
         self._created = time.time()
 
@@ -67,25 +68,26 @@
         try:
             return super(Registry, self).load(path, format=format)
-        except Exception:
-            pass # try the ASCII reader
+        except NoKnownLoaderException as e:
+            pass  # try the ASCII reader
+        except FileContentsException as e:
+            pass
         try:
             ascii_loader = ascii_reader.Reader()
             return ascii_loader.read(path)
-        except Exception:
-            pass # try the cansas XML reader
+        except FileContentsException:
+            pass  # try the cansas XML reader
         try:
             cansas_loader = cansas_reader.Reader()
             return cansas_loader.read(path)
-        except Exception:
-            pass # try the cansas NeXuS reader
+        except FileContentsException:
+            pass  # try the cansas NeXuS reader
         try:
             cansas_nexus_loader = cansas_reader_HDF5.Reader()
             return cansas_nexus_loader.read(path)
-        except Exception:
+        except FileContentsException:
             # 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 for SasView. The most common formats are "
-            msg += "multi-column ASCII, CanSAS XML, and CanSAS NeXuS."
-            raise Exception(msg)
+            msg += "known format that can be loaded by SasView."
+            raise NoKnownLoaderException(msg)
 
     def find_plugins(self, dir):
Index: src/sas/sascalc/dataloader/loader_exceptions.py
===================================================================
--- src/sas/sascalc/dataloader/loader_exceptions.py	(revision 270c882bc870c7c9d75e62cd612c28f5cd4e9aaf)
+++ src/sas/sascalc/dataloader/loader_exceptions.py	(revision 270c882bc870c7c9d75e62cd612c28f5cd4e9aaf)
@@ -0,0 +1,32 @@
+"""
+Exceptions specific to loading data.
+"""
+
+
+class NoKnownLoaderException(Exception):
+    """
+    Exception for files with no associated reader based on the file
+    extension of the loaded file. This exception should only be thrown by
+    loader.py.
+    """
+    def __init__(self, e):
+        self.message = e
+
+
+class FileContentsException(Exception):
+    """
+    Exception for files with an associated reader, but with no loadable data.
+    This is useful for catching loader or file format issues.
+    """
+    def __init__(self, e):
+        self.message = e
+
+
+class DataReaderException(Exception):
+    """
+    Exception for files that were able to mostly load, but had minor issues
+    along the way.
+    Any exceptions of this type should be put into the datainfo.errors
+    """
+    def __init__(self, e):
+        self.message = e
