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

欢迎!有关如何使用这个平台,请查看关于页面以获取更多信息。

0
core.async

在ClojureScript 1.10.520中无法重现,在Clojure中无法重现。在core.async 1.3.610和1.1.582中重现,在1.0.567中无法重现。

看起来与https://clojure.atlassian.net/browse/ASYNC-198?focusedCommentId=12026相同。

代码

(ns app.main
  (:require [clojure.core.async :as a]))

(a/go
  (try
    (prn :ret
         (try
           (throw (ex-info "expected" {}))

           (catch js/Error e
             (prn :catch1)
             (throw e))

           (finally
             (prn :finally))))

    (catch js/Error _e
      (prn :catch2))))

预期

:catch1
:finally
:catch2

实际

:catch1
:finally
:ret #error {:message "expected", :data {}}

1个回答

0

一行重现
clojure -Srepro -Sdeps '{:deps {org.clojure/clojurescript {:mvn/version "1.10.520"} org.clojure/core.async {:mvn/version "1.3.610"}}}' -m cljs.main -re node -e "(require '[clojure.core.async :refer [go]]) (go (try (try (throw (ex-info \"err\" {:ex 42})) (catch js/Error e (throw e)) (finally (prn :finally))) (catch js/Error e (prn :catch2))))"

我测试了{clj,cljs} x {with-go,without-go},只有在cljsgo上才能工作。

感谢您的报告,跟踪在此https://clojure.atlassian.net/browse/ASYNC-232
...