command line arguments - Ways to avoid Exception in thread "main" clojure.lang.ArityException? -


when user supplies no command line arguments, want hello world print usage information instead of error trace.

":";exec clj -m `basename $0 .clj` ${1+"$@"} ":";exit  (ns hello     (:gen-class))  (defn -main     [greetee]     (println (str "hello " greetee "!")))  $ ./hello.clj fred hello fred! $ ./hello.clj  exception in thread "main" clojure.lang.arityexception: wrong number of args (0) passed to: hello$-main     @ clojure.lang.afn.throwarity(afn.java:439)     @ clojure.lang.afn.invoke(afn.java:35)     @ clojure.lang.var.invoke(var.java:397)     @ clojure.lang.afn.applytohelper(afn.java:159)     @ clojure.lang.var.applyto(var.java:518)     @ clojure.core$apply.invoke(core.clj:600)     @ clojure.main$main_opt.invoke(main.clj:323)     @ clojure.lang.fnloaderthunk.invoke(fnloaderthunk.java:36)     @ clojure.main$main.doinvoke(main.clj:426)     @ clojure.lang.restfn.invoke(restfn.java:422)     @ clojure.lang.fnloaderthunk.invoke(fnloaderthunk.java:36)     @ clojure.lang.var.invoke(var.java:405)     @ clojure.lang.afn.applytohelper(afn.java:165)     @ clojure.lang.var.applyto(var.java:518)     @ clojure.main.main(main.java:37) 

(defn -main [& args]   (if-not (first args)     (usage)     (println "hello" (first args)))) 

you can improve on fair bit, that's reasonable outline.


Comments

Popular posts from this blog

c# - How to set Z index when using WPF DrawingContext? -

razor - Is this a bug in WebMatrix PageData? -

visual c++ - Using relative values in array sorting ( asm ) -