Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Throwing an exception in a function normally stops the rest of the work that function would do. That is not the case when using Inf and similar

    > const f = (x) => [x/2, x/0]
    undefined
    > f(10)
    [ 5, Infinity ]


I assert stopping immediately is much more practical. In many cases, you waste considerable amounts of processing power to reach a conclusion you often won't be able to use.


It depends on your use case.


Sure but what should be the default?


Rust and Haskell can solve this fairly well: both styles of dealing with errors are easily accessible.

Go solves this really badly.

As for specifically what to do about division: the right default depends on your application. Either way is defensible, and I would rather work on making it easy to pick either style in the language of your choice, than to worry too much about what the default should be.


That's a good point, sometimes this is what you want.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: