This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2019-08-14
Channels
- # aleph (1)
- # announcements (1)
- # beginners (59)
- # boot (2)
- # calva (5)
- # cider (8)
- # clj-kondo (6)
- # cljdoc (5)
- # cljsrn (11)
- # clojure (123)
- # clojure-dusseldorf (1)
- # clojure-europe (4)
- # clojure-italy (22)
- # clojure-losangeles (4)
- # clojure-nl (10)
- # clojure-spec (18)
- # clojure-uk (22)
- # clojurescript (103)
- # cursive (32)
- # data-science (1)
- # datomic (21)
- # events (2)
- # figwheel (1)
- # fulcro (12)
- # graalvm (3)
- # graphql (8)
- # jobs (2)
- # kaocha (4)
- # klipse (2)
- # lein-figwheel (4)
- # leiningen (23)
- # off-topic (11)
- # planck (11)
- # re-frame (8)
- # reagent (2)
- # reitit (3)
- # rewrite-clj (1)
- # ring (1)
- # ring-swagger (31)
- # schema (2)
- # shadow-cljs (66)
- # spacemacs (3)
- # specter (16)
- # sql (9)
- # tools-deps (16)
- # vim (26)
domanda di architettura, come gestite voi le eccezioni in clojure? ad esempio, se c'è un main che chiama una funzione che deve leggere un file, se il file non esiste, come gestite il flow per l'eccezione?
usate ex-info
ad esempio?
io si, cerco di usare ex-info
piu' possibile in modo da mantenere contesto. cose che non hanno funzionato con questa strategia sono state le integrazioni con log aggregators come sentry
eh quelle cose sono troppo avanzate per me per adesso, cmq se la via da seguire è ex-info
è perfetto per adesso 🙂
ex-info + qbits.ex, poi usiamo ex per indicare si deve essere mandato a sentry o a l user etc etc
oh! mi ricordo di aver visto qbits.ex
in precedenza ma me l'ero scordato. grazie per il reminder!
obligatory link: https://github.com/mpenet/ex
Un'altra domanda per voi: come la pensate su check nil vs throw exception, sempre riferito ad una funzione che legge un file e lo valida. Come vedete questa funzione se stampa a video il problema e ritorna nil se qualcosa é andato storto vs lancia 2 tipi di eccezioni, una per il file trovato ed una per il file non valido e resta al chiamante gestire cosa fare?
di impulso mi vien da dire che eccezioni per i casi di - file non trovato - file non valido sono preferibili
nil
non ti permetterebbe di distinguere tra tali casi (e potenzialmente il caso di file vuoto, ammesso e non concesso che file vuoto
non ricada nella categoria file non valido
)
se pero' la logica che stai sviluppando non richiede questo tipo di precisione, allora nil
e via
Si a me serva che vada semplicemente tutto bene, se qualcosa va storto non mi interessa che il caller sappia cosa é andato storto, solo l utente ed é per questo che stampo a video il messaggio
Puoi anche usare assert in teoria
Se non ti interessa di come brutalmente scoppia
il problema degli assert e’ appunto che se ce n’e’ piu’ di una (o non sai dove sono) non ti dice niente, ne file ne linea
Beh ci puoi mettere un messaggio comunque
Quindi l'errore può essere comunque chiaro