         case "all":
             inspectionOptions = .all
         default:
-            print("Unknown inspection feature: \(option)")
-            exit(-1)
+            configError("Unknown inspection feature: \(option)")
         }
     }
 }
 
 // Make it easy to detect typos etc. in command line arguments
 if args.unusedOptionals.count > 0 {
-    print("Invalid arguments: \(args.unusedOptionals)")
-    exit(-1)
+    configError("Invalid arguments: \(args.unusedOptionals)")
 }
 
 // Forbid this configuration as runtime types collection requires the AbstractInterpreter
 if disableAbstractInterpreter, collectRuntimeTypes {
-    print(
+    configError(
         """
         It is not possible to disable abstract interpretation and enable runtime types collection at the same time.
         Remove at least one of the arguments:

    exit(0)
}

let jsShellPath = args[0]

if !FileManager.default.fileExists(atPath: jsShellPath) {
    print("Invalid JS shell path \"\(jsShellPath)\", file does not exist")
    exit(-1)
}

var profile: Profile! = nil

    if let params = Arguments.parseHostPort(val) {
        networkMasterParams = params
    } else {
        configError("Argument --networkMaster must be of the form \"host:port\"")
    }
}

