Aborting the computation of Network.HTTP.Lucu.Resource.Resource
in any IO
monads or arrows.
Documentation
abort :: MonadIO m => StatusCode -> [(String, String)] -> Maybe String -> m aSource
Computation of
aborts the
abort
status headers msgNetwork.HTTP.Lucu.Resource.Resource
monad with given status,
additional response headers, and optional message string.
What this really does is to throw a special
Exception
. The exception will be caught by the
Lucu system.
- If the
Network.HTTP.Lucu.Resource.Resource
is in the /Deciding Header/ or any precedent states, it is possible to use thestatus
and such like as a HTTP response to be sent to the client. - Otherwise the HTTP response can't be modified anymore so the
only possible thing the system can do is to dump it to the
stderr. See
cnfDumpTooLateAbortionToStderr
.
Note that the status code doesn't have to be an error code so you can use this action for redirection as well as error reporting e.g.
abort MovedPermanently [("Location", "http://example.net/")] (Just "It has been moved to example.net")
abortPurely :: StatusCode -> [(String, String)] -> Maybe String -> aSource
This is similar to abort
but computes it with
unsafePerformIO
.