class SystemdUnitNotFoundError(Exception):
-    pass
+    def __init__(self, path, unit):
+        self.path = path
+        self.unit = unit
 
 
 class SystemdUnit():
 
         try:
             for also in config.get('Install', 'Also'):
-                SystemdUnit(self.root, also).enable()
+                try:
+                    SystemdUnit(self.root, also).enable()
+                except SystemdUnitNotFoundError as e:
+                    sys.exit("Error: Systemctl also enable issue with  %s (%s)" % (service, e.unit))
 
         except KeyError:
             pass
         state = presets.state(service)
 
         if state == "enable" or state is None:
-            SystemdUnit(root, service).enable()
+            try:
+                SystemdUnit(root, service).enable()
+            except SystemdUnitNotFoundError:
+                sys.exit("Error: Systemctl preset_all issue in %s" % service)
 
     # If we populate the systemd links we also create /etc/machine-id, which
     # allows systemd to boot with the filesystem read-only before generating
 
     if command == "mask":
         for service in args.service:
-            SystemdUnit(root, service).mask()
+            try:
+                SystemdUnit(root, service).mask()
+            except SystemdUnitNotFoundError as e:
+                sys.exit("Error: Systemctl main mask issue in %s (%s)" % (service, e.unit))
     elif command == "enable":
         for service in args.service:
-            SystemdUnit(root, service).enable()
+            try:
+                SystemdUnit(root, service).enable()
+            except SystemdUnitNotFoundError as e:
+                sys.exit("Error: Systemctl main enable issue in %s (%s)" % (service, e.unit))
     elif command == "preset-all":
         if len(args.service) != 0:
             sys.exit("Too many arguments.")