So, a more nuanced statement would be "Elm has no unchecked runtime
exceptions".

We use Maybe and Result in place of Null and Exceptions. But the key is
that the type system *forces* you to catch these. There's no (fromMaybe :
Maybe a -> a) function, like there is in Haskell.

What's also relevant is that a number of things that are runtime exceptions
in other languages, like Null access, or array out of bounds, are not in
Elm. They force you to check your exceptions.

You *can* call Debug.crash, but don't, unless you know that your code will
never reach that branch, or you have some really good reason. Check your
exceptions and exit gracefully.

It's pretty analogous to Java's checked exceptions, where the exception is
in the type of the function, and you *have* to either catch the exceptions,
or throw them yourself.


On Wed, Sep 7, 2016 at 10:08 AM, Dave Ford <df...@smart-soft.com> wrote:

> One of Elm’s most interesting features is "No Runtime Exceptions".
>
> But I would argue that Elm does in fact have Runtime Exceptions, even if
> you don't call it that. I explain my reasoning in this blog post:
>
> https://medium.com/@daveford/my-take-on-elm-runtime-
> exceptions-b3c5156887c9#.p1mrtcr2m
>
> I may very well be misunderstanding something. So please correct me if I
> am missing the point.
>
> Thanks.
>
> --
> You received this message because you are subscribed to the Google Groups
> "Elm Discuss" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to elm-discuss+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups "Elm 
Discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to elm-discuss+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to