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.
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.