gpt4 book ai didi

clojure - 在线程 "main"clojure.lang.ArityException 中避免异常的方法?

转载 作者:行者123 更新时间:2023-12-04 18:51:44 25 4
gpt4 key购买 nike

当用户不提供命令行参数时,我希望 Hello World 打印使用信息而不是错误跟踪。

":";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
at clojure.lang.AFn.throwArity(AFn.java:439)
at clojure.lang.AFn.invoke(AFn.java:35)
at clojure.lang.Var.invoke(Var.java:397)
at clojure.lang.AFn.applyToHelper(AFn.java:159)
at clojure.lang.Var.applyTo(Var.java:518)
at clojure.core$apply.invoke(core.clj:600)
at clojure.main$main_opt.invoke(main.clj:323)
at clojure.lang.FnLoaderThunk.invoke(FnLoaderThunk.java:36)
at clojure.main$main.doInvoke(main.clj:426)
at clojure.lang.RestFn.invoke(RestFn.java:422)
at clojure.lang.FnLoaderThunk.invoke(FnLoaderThunk.java:36)
at clojure.lang.Var.invoke(Var.java:405)
at clojure.lang.AFn.applyToHelper(AFn.java:165)
at clojure.lang.Var.applyTo(Var.java:518)
at clojure.main.main(main.java:37)

最佳答案

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

你可以在这方面有所改进,但这是一个合理的大纲。

关于clojure - 在线程 "main"clojure.lang.ArityException 中避免异常的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5227543/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com