From ddf03c50ae14c942c69c85e73e96caed00767e37 Mon Sep 17 00:00:00 2001 From: Michiel Borkent Date: Wed, 29 Dec 2021 16:10:30 +0100 Subject: [PATCH] [#1116] Missing error message when exception happens in REPL print --- src/babashka/impl/clojure/main.clj | 10 ++++++---- test/babashka/impl/repl_test.clj | 4 +++- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/babashka/impl/clojure/main.clj b/src/babashka/impl/clojure/main.clj index aea9726e..83f0c38a 100644 --- a/src/babashka/impl/clojure/main.clj +++ b/src/babashka/impl/clojure/main.clj @@ -104,10 +104,12 @@ by default when a new command-line REPL is started."} repl-requires (set! *3 *2) (set! *2 *1) (set! *1 value) - (try - (print value) - (catch Throwable e - (throw (ex-info nil {:clojure.error/phase :print-eval-result} e))))))) + (try (print value) + (catch Throwable e + (throw (ex-info (ex-message e) + (assoc (meta input) + :file "" + :type :sci/error) e))))))) (catch Throwable e (caught e) (set! *e e))))] diff --git a/test/babashka/impl/repl_test.clj b/test/babashka/impl/repl_test.clj index c82b12ca..49cdab82 100644 --- a/test/babashka/impl/repl_test.clj +++ b/test/babashka/impl/repl_test.clj @@ -50,7 +50,9 @@ (assert-repl "(read-line)hello" "hello") (assert-repl "(read-line)\nhello" "hello") (assert-repl-error "(+ 1 nil)" "NullPointerException") - (assert-repl-error "(/ 1 0) (pst 1)" "Divide by zero\n\tclojure.lang.Numbers")) + (assert-repl-error "(/ 1 0) (pst 1)" "Divide by zero\n\tclojure.lang.Numbers") + (assert-repl-error "(partition (range 5) 3)" + "Don't know how to create ISeq from: java.lang.Long")) ;;;; Scratch