         (assumedTrue (.exists uniqueFile) (.isDirectory uniqueFile))
         uniqueFile
         )
+      (catch Throwable t 
+        (do 
+          (throw t)
+          )
+        )
       )
    ; )
   )

(defn getUniqueFolder
  [& [in-path prefix suffix]]
  ;(delay 
    (do
      (let [uniqueFile (getUniqueFile)
            ]
        (assumedTrue (.exists uniqueFile) (.isFile uniqueFile))

  [ex & restt]
  ;(class? java.lang.String)
  `(do 
     (cond
       
       ;if passed a class or symbol resolving to a class
       (and
         (instance? java.lang.Class ~ex)
         (contains? 
           (supers ~ex) 
           java.lang.Throwable
           )
         )
       ;then
       (throw (newClass ~ex (str ~@restt)))
       
       ;if passed an instance of an exception
       (instance? java.lang.Throwable ~ex)
       ;then throw it as it is
       (throw ~ex)
       
       ;none of the above
       :else
       (throw 
         (new RuntimeException 
              (str 
                "you must pass a class/instance to `"
                '~(first &form)
                "` at "
                '~(meta &form)
                )
              )
         )
       )
     ;(let [cls# (getAsClass ~ex)]
       
      ; )
     )
  )
