This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2016-04-26
Channels
- # admin-announcements (4)
- # beginners (3)
- # boot (78)
- # cider (13)
- # cljs-dev (29)
- # cljs-edn (8)
- # cljsjs (11)
- # cljsrn (15)
- # clojure (81)
- # clojure-beijing (2)
- # clojure-belgium (3)
- # clojure-canada (1)
- # clojure-dusseldorf (8)
- # clojure-greece (6)
- # clojure-russia (40)
- # clojure-sg (1)
- # clojure-uk (59)
- # clojurebridge (1)
- # clojurescript (101)
- # core-logic (1)
- # cursive (3)
- # data-science (1)
- # datomic (60)
- # emacs (4)
- # error-message-catalog (12)
- # funcool (1)
- # hoplon (60)
- # jobs (1)
- # jobs-discuss (40)
- # leiningen (5)
- # liberator (1)
- # mount (22)
- # off-topic (8)
- # om (16)
- # onyx (53)
- # re-frame (11)
- # reagent (2)
- # specter (4)
- # testing (18)
- # untangled (51)
Hi Henry, …
We found a repo with an exceptions directory containing binary files that I think you guys built:
Maybe you can provide some context on this so Dmitri can make use of your data?
From Henry:
A quick refresher suggests that src/errors is the best directory for poking around. We deliberately avoided exactly matching errors, but error_dictionary.clj {Categories of errors}, dictionaries.clj {stracktrace type translations} and error_hints.clj {Suggestions based on the type of error} are useful to skim through.
Running our code might be informative, but I apparently left that information out of the readme. If you want to see our version of an error, put an entire section of erroneous code in src/intro/may2015.clj (name is for historic reasons). You can also grab the exception object by serializing it (& etc) and then feeding it to errors.prettify_exception/prettify-exception.
This is really impressive stuff
Just looked at it
They have catalogued 51 error patterns with regex, and do auto-translation into clearer messages
If there’s one file you look at it, it should be this: https://github.com/Clojure-Intro-Course/clojure-intro-class/blob/master/src/errors/error_dictionary.clj
I’ve been planning for a while to allow users to fix errors using their technique in the Cursive REPL.
Since the REPL is actually pretty non-extensible when it comes to error handling, I’ll probably wrap all forms I send in a try/catch and then post-process any exceptions. Pretty much any exception coming from the compiler doesn’t need a stacktrace, they’re completely useless and quite scary.