2024 Clojure 状态调查!中分享您的想法。

欢迎!请在关于页面查看更多关于此网站如何运作的信息。

0
Clojure
重新标记

clojure 文档说明

注册 INT 信号处理程序。调用此函数后,Ctrl-C 将导致给定函数 f 被调用,并以信号作为唯一参数。
如果没有提供函数,则使用线程终止器。

事实上,如果没有提供函数发生的情况是

   Exception in thread "SIGINT handler" java.lang.IllegalArgumentException: No matching method stop found taking 1 args for class java.lang.Thread
        at clojure.lang.Reflector.invokeMatchingMethod(Reflector.java:127)
        at clojure.lang.Reflector.invokeInstanceMethod(Reflector.java:102)
        at clojure.repl$thread_stopper$fn__11691.invoke(repl.clj:277)
        at clojure.repl$set_break_handler_BANG_$fn__11694.invoke(repl.clj:289)
        at clojure.repl.proxy$java.lang.Object$SignalHandler$d8c00ec7.handle(Unknown Source)
        at jdk.unsupported/sun.misc.Signal$InternalMiscHandler.handle(Signal.java:198)
        at java.base/jdk.internal.misc.Signal$1.run(Signal.java:219)
        at java.base/java.lang.Thread.run(Thread.java:833)

某些人(libera.chat 上的 #clojure 的 TimMc)建议,Java 在 Java 8 之后移除了单参数停止函数,现在它不再存在,所以现在不提供函数使用 set-break-handler! 实际上并没有什么有用的功能。

1 个答案

+1
...