News for hackers. Stuff that matters.
Re:Cancelable Promises: Why was this proposal withdrawn? by y4mi on Monday December 19, 2016 @11:00AM (#13212203)
no, libraries should not throw exceptions if they get a http response. that is a perfect example where the programmer has to roll his own, because this is entirely situational.

the pseudo-code example of the grandparent seems to me to implement a) detecting the http code, b) throwing an exception and finally c) handling this except.

Re:Cancelable Promises: Why was this proposal withdrawn? by vinylkey on Monday December 19, 2016 @11:52AM (#13212748)
See superagent where anything that's not a 2xx is treated as an error (https://github.com/visionmedia/superagent/issues/283)
Re:Cancelable Promises: Why was this proposal withdrawn? by spion on Monday December 19, 2016 @11:03AM (#13212238)
Which pseudo code are you referring to?

Exceptions being for "exceptional" circumstances is a popular misconception. Exceptions are for "an upper layer to handle". You can use them for any alternative values you wish to propagate to the upper layer.

Re:Cancelable Promises: Why was this proposal withdrawn? by paulddraper on Monday December 19, 2016 @11:48AM (#13212706)
> Exceptions are for "an upper layer to handle".

So are return values :) The difference is that return value is for the next immediate layer; an exception is for some layer, but I don't know what.

IMO your HTTP layer should not be throwing exceptions based on status code. The layer above that should.

Re:Cancelable Promises: Why was this proposal withdrawn? by spion on Monday December 19, 2016 @01:20PM (#13213589)
Oh ok. Its not pseudocode, the combinators work :)

I would put it the other way around. The http layer should not decide that the layer immediately above it must be the one to handle all its errors. It should also be the one that defines the default (success) case and the error case, since those are defined by the HTTP protocol.