I am not sure whether error handling with monads is considered as best practice for Clojure but it seems quite popular (however, I still see exceptions to be used also a lot). Monads seem more functional approach to error handling. However, I am missing the stacktrace when using error monads. Is there a way how to get stacktrace when using monads? Or what is the alternative in here?
Stacktrace and error monads in Clojure
439 Views Asked by Viktor K. At
2
There are 2 best solutions below
0
Shantanu Kumar
On
Stack traces can be generated by saying (Exception. "msg") anywhere. I have been working on Promenade (see documentation) that can combine exceptions and errors-as-values. You should take a look if that sounds like a potential solution.
Related Questions in ERROR-HANDLING
- Application is missing a default group leaderboard (ItunesConnect error)
- jQuery Ajax Uncaught TypeError: Cannot use 'in' operator to search
- Error return from the pooledBin function (R package binGroup) depending on the method of confidence interval calculation
- How to determine data point that gives error?
- Facelets error page works during ajax request with FullAjaxExceptionHandler, but does not evaluate EL during synchronous request
- why ajax error is different in IE and Chrome?
- Unexceptional exceptions
- What is the difference between Swift 2.0 do-try-catch and regular Java/C#/C++ exceptions
- how to fix error when url is directly entered with no search keywords?
- Errors Handling in WCF - how to pass the error to client as well as remain the channel in the "Open" state
- Ignoring User Exists Error in Oracle
- error for displayed even it has not been submitted yet
- Error handling using poller
- register_shutdown_function with error 500
- Eclipse error parser ignores template "call stack"
Related Questions in CLOJURE
- core.logic CLP(FD) with ClojureScript
- clojure worker-only app on heroku fails with Error R10
- How do persistent data structures help make Om faster
- Union in HoneySQL
- Reduce memory consumption in development
- twitter response: "error 32: Could not authenticate you" from Heroku, but not desktop
- How can I create a global object, and attach a string and a function to that object, in ClojureScript?
- AngularJS $http GET method to backend server: Request Method:OPTIONS 405
- Clojure : event listener on domina library
- Why is my streamparse topology definition complaining about a wrong number of arguments to thrift$mk-topology?
- Clojure defn name as multiplier
- clojure quoting inside let
- Build macro result with loops
- How do I unit test clojure.core.async go macros?
- Datomic and HornetQException "unable to validate user"
Related Questions in MONADS
- Trampolining scalaz' Monad.whileM_ to prevent stack overflow
- What is the type of the variable in do-notation here in Haskell?
- When to use monads from scalaz?
- Why does GHCI get "stuck" in an error state after an error?
- Stacktrace and error monads in Clojure
- State Monad with `put` Function
- Is there any scala library that treat tuples as monads
- How to "wrap" monadic return value
- Haskell UI do clause, how to print?
- Haskell do clause with multiple monad types
- What is the type of a very simple unwrap function for a transformed monad?
- Haskell Groundhog-Db function types
- Can I reflect messages out of a Haskell program at runtime?
- Chaining DB Insertions Without Explicitly Checking for Success
- Is it correct to use the Reader monad in this turn-based game?
Related Questions in STACK-TRACE
- How to print the first line from a traceback stack
- How to change unittest.TestResult to disable/remove traceback on Failures?
- What's Dead & Exploded in Swift's exception stack?
- How can I tell if a function is called in a loop within python's tracer function?
- No line numbers in stacktrace on OS X with DNX - dnxcore50 - am I missing a PDB-file?
- Get actual class from stack trace element
- Python Django not showing stack trace
- Stack trace not found in Output during Netbeans 7.4 debugging session
- access to original dict after a KeyError
- Stacktrace and error monads in Clojure
- Exception printing is disabled by default for security reasons. Error log record number:
- Can `window.onerror` be used to log the error's stack trace as a global error handler
- Java - how to get the stack trace from before a Runnable?
- iOS - Symbolicate Stack trace symbols
- Stack trace of the application specific java threads
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
As muhuk says, you'd use a monad to avoid getting a stacktrace.
An article I discovered when answering another SO recently that relates to the one you linked is http://overwatering.org/blog/2013/12/clojures-thread-for-monads
It builds a
m->threading monad, and gives example of using it to produce afail->monad based on the work in the error monads article. It allows you to effectively return different error types during execution.