为什么未捕获此异常?

平面虫

如果我定义以下功能

(defn catcher [x] (try 
    (load-string x)
    (catch Exception e 
        (prn "caught"))) )

(catcher "(+ 2 \"2\")") =>“抓到”

但是(catcher "(keys [1 2])")=> ClassCastException java.lang.Long无法强制转换为java.util.Map $ Entry

通常,这两个输入都抛出ClassCastException,那么为什么只捕获第一个?

泰勒·伍德

尝试打印的结果时,似乎发生了异常(keys [1 2])

(type (catcher "(keys [1 2])"))
=> clojure.lang.APersistentMap$KeySeq

在这里,您可以看到表达式实际上是在创建/返回aKeySeq而不会引发/捕获异常。只有当这KeySeq印刷的异常被抛出:

java.lang.ClassCastException: java.lang.Long cannot be cast to java.util.Map$Entry
    at clojure.lang.APersistentMap$KeySeq.first(APersistentMap.java:168)
    at clojure.lang.RT.first(RT.java:685)
    at clojure.core$first__5107.invokeStatic(core.clj:55)
    at clojure.core$print_sequential.invokeStatic(core_print.clj:64)
    at clojure.core$fn__7021.invokeStatic(core_print.clj:174)
    at clojure.core$fn__7021.invoke(core_print.clj:174)
    at clojure.lang.MultiFn.invoke(MultiFn.java:233)
    at clojure.tools.nrepl.middleware.pr_values$pr_values$fn$reify__784.send(pr_values.clj:35)

注意,在堆栈跟踪中,当REPL尝试实现打印顺序时,此异常源自KeySeq.first方法(直到您的函数创建并返回其值之后才调用该异常)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么未捕获多父异常?

来自分类Dev

为什么会有未捕获的异常?

来自分类Dev

为什么未捕获到异常?

来自分类Dev

为什么我不能正确捕获此异常?

来自分类Dev

为什么无法很好地捕获此float转换异常?

来自分类Dev

为什么此代码显示异常行为?(未提交表格)

来自分类Dev

为什么出现“未授权执行此操作”异常?

来自分类Dev

为什么我无法捕获此python异常?异常模块/类与捕获的模块/类不匹配

来自分类Java

为什么不捕获异常的代码允许捕获检查异常?

来自分类Dev

为什么会出现此错误:“未捕获的ReferenceError:未定义value1”?

来自分类Dev

为什么在Android中收到“未捕获的异常退出线程”?

来自分类Dev

为什么使用Promise.finally最终导致未捕获的异常?

来自分类Dev

为什么在此多线程示例中未捕获到异常?

来自分类Dev

为什么我不能捕获OOM异常?

来自分类Dev

为什么该程序无法捕获异常?

来自分类Dev

为什么 onBindViewHolder 无法从 onBindBaseViewHolder 捕获异常?

来自分类Dev

为什么`catch`不能捕获这个异常?

来自分类Java

为什么出现此异常FileItemStream $ ItemSkippedException?

来自分类PHP

为什么未捕获到此PDOException?

来自分类Dev

为什么多重继承的异常没有捕获父异常?

来自分类Javascript

为什么此表未正确排序?

来自分类Dev

为什么此crontab作业未运行

来自分类Dev

为什么此内联块未居中?

来自分类Dev

为什么由于未捕获的异常而在终止应用程序时xcode不显示源文件?

来自分类Dev

在PostgreSQL 10中,为什么对于可延迟约束,pgplsql异常处理未捕获到外键冲突错误?

来自分类Dev

为什么我得到:未捕获的异常:错误(existence_error(procedure,foggy/0),top_level/0)?

来自分类Java

为什么异常堆栈跟踪未登录?

来自分类Java

为什么在Java中会出现此错误?线程“主”中的异常java.lang.Error:未解决的编译问题

来自分类Dev

未捕获异步异常

Related 相关文章

  1. 1

    为什么未捕获多父异常?

  2. 2

    为什么会有未捕获的异常?

  3. 3

    为什么未捕获到异常?

  4. 4

    为什么我不能正确捕获此异常?

  5. 5

    为什么无法很好地捕获此float转换异常?

  6. 6

    为什么此代码显示异常行为?(未提交表格)

  7. 7

    为什么出现“未授权执行此操作”异常?

  8. 8

    为什么我无法捕获此python异常?异常模块/类与捕获的模块/类不匹配

  9. 9

    为什么不捕获异常的代码允许捕获检查异常?

  10. 10

    为什么会出现此错误:“未捕获的ReferenceError:未定义value1”?

  11. 11

    为什么在Android中收到“未捕获的异常退出线程”?

  12. 12

    为什么使用Promise.finally最终导致未捕获的异常?

  13. 13

    为什么在此多线程示例中未捕获到异常?

  14. 14

    为什么我不能捕获OOM异常?

  15. 15

    为什么该程序无法捕获异常?

  16. 16

    为什么 onBindViewHolder 无法从 onBindBaseViewHolder 捕获异常?

  17. 17

    为什么`catch`不能捕获这个异常?

  18. 18

    为什么出现此异常FileItemStream $ ItemSkippedException?

  19. 19

    为什么未捕获到此PDOException?

  20. 20

    为什么多重继承的异常没有捕获父异常?

  21. 21

    为什么此表未正确排序?

  22. 22

    为什么此crontab作业未运行

  23. 23

    为什么此内联块未居中?

  24. 24

    为什么由于未捕获的异常而在终止应用程序时xcode不显示源文件?

  25. 25

    在PostgreSQL 10中,为什么对于可延迟约束,pgplsql异常处理未捕获到外键冲突错误?

  26. 26

    为什么我得到:未捕获的异常:错误(existence_error(procedure,foggy/0),top_level/0)?

  27. 27

    为什么异常堆栈跟踪未登录?

  28. 28

    为什么在Java中会出现此错误?线程“主”中的异常java.lang.Error:未解决的编译问题

  29. 29

    未捕获异步异常

热门标签

归档