Molte volte quando provo a scrivere qualche funzione ottengo un'eccezione. È normale In Java puoi trovare il luogo e il motivo per cui l'eccezione si verifica ma nei testi delle eccezioni dei clojure mi fai impazzire. C'è qualche consiglio su come leggere le eccezioni in clojure e come trovare dove avviene l'eccezione di codice e perché?Come leggere le eccezioni del clojure in REPL?
Per esempio mi prenderò un po 'di codice:
(do
(list?)
(list? [])
(list? '(1 2 3))
(list? (defn f [] (do())))
(list? "a"))
quando chiamo questa funzione in REPL mi metterò
java.lang.IllegalArgumentException: Wrong number of args (0) passed to: core$list-QMARK- (NO_SOURCE_FILE:46)
che non mi aiuta molto a trovare il problema in seconda linea. Nel codice un po 'più complicato non darà quasi nessuna informazione. (Ovviamente indica la lista? In alcuni c'è un numero sbagliato di argomenti.) È sbagliato che provi a scrivere codice in REPL? Come leggere i messaggi di eccezione in REPL? C'è un modo per ottenere informazioni migliori sulle eccezioni in REPL?
Possibile duplicato di http://stackoverflow.com/questions/2352020/debugging-in-clojure. –
Relativo anche a http://stackoverflow.com/questions/14297079/why-are-clojure-stacktraces-so-long/14298576#14298576 – JohnJ