Bazı işlevler yazmaya çalıştığımda çoğu kez özel durum alıyorum. Bu normal. Java'da istisnanın neden ortaya çıktığı, ancak clojure istisna metinlerinde beni çıldırttığınız yeri ve sebebi bulabilirsiniz. Clojure'deki istisnaları nasıl okuyacağınız ve kod istisnasının nerede olduğunu ve niçin bulunacağını öğrenmek için bazı ipuçları var mı?REPL'deki clojure istisnaları nasıl okunur?
Örneğin bazı kod alacaktır: Ben Çoğaltma bu işlevi çağırdığınızda
(do
(list?)
(list? [])
(list? '(1 2 3))
(list? (defn f [] (do())))
(list? "a"))
beni çok ikinci satırında sorunu bulmaya yardımcı olmazsa
java.lang.IllegalArgumentException: Wrong number of args (0) passed to: core$list-QMARK- (NO_SOURCE_FILE:46)
alacak. Biraz daha karmaşık kodlarda neredeyse hiç bilgi vermez. (Tabii ki listeye bakar, bazılarında yanlış argüman vardır.) REPL'ye kod yazmayı denediğim yanlış mı? REPL'deki istisna mesajları nasıl okunur? REPL'teki istisnalar hakkında daha iyi bilgi edinmenin yolu var mı?
Olası http://stackoverflow.com/questions/2352020/debugging-in-clojure kopyası. –
Ayrıca, http://stackoverflow.com/questions/14297079/why-are-clojure-stacktraces-so-long/14298576#14298576 ile ilgilidir. – JohnJ