Because Clojure is on the JVM and interops with Java and exceptions are the 
provided error handling mechanism.

Exceptions are not spec'ed because specs are designed to specify the 
expected inputs and outputs of a function and exceptions are ... exceptions 
to that. (Generally, I don't feel that it would make sense to say much 
about the exception anyways, although the one place I sometimes want 
something is a spec for ex-data thrown.)

I understand monadic errors are natural in other language communities, and 
certainly there is nothing stopping you from using that approach. But 
similarly, we're not going to add anything to spec for it. If it works for 
you, great!

On Friday, October 26, 2018 at 4:22:36 AM UTC-5, Serzh Nechyporchuk wrote:
>
> Why exceptions are the pattern we encourage? So if I spec'ed my function 
> input, output and input-to-output there is no way to specify errors when 
> something goes wrong, because neither spec nor clojure does not allow you 
> to describe exception that can be thrown in your function. Returning 
> "monadic" errors feels very natural when you are using spec.
>
> On Friday, October 26, 2018 at 6:53:31 AM UTC+3, Alex Miller wrote:
>>
>> This is not a pattern that we encourage in Clojure. The standard 
>> mechanism for error reporting is exceptions, which are not spec'ed.
>>
>> On Thursday, October 25, 2018 at 8:46:54 PM UTC-5, Didier wrote:
>>>
>>> I've started to see a pattern in my spec like this:
>>>
>>> (s/or :success string?
>>>       :error ::error)
>>>
>>> And I've been tempted to create my own spec macro for this. But I also 
>>> thought, maybe Spec itself should have such a spec.
>>>
>>> (s/error <success-spec> <error-spec>)
>>>
>>> What do people think?
>>>
>>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to