"""Called at the beginning of a request before `get`/`post`/etc.
Override this method to perform common initialization regardless
- of the request method.
+ of the request method. There is no guarantee that ``prepare`` will
+ be called if an error occurs that is handled by the framework.
Asynchronous support: Use ``async def`` or decorate this method with
`.gen.coroutine` to make it asynchronous.
def on_finish(self) -> None:
"""Called after the end of a request.
- Override this method to perform cleanup, logging, etc.
- This method is a counterpart to `prepare`. ``on_finish`` may
- not produce any output, as it is called after the response
- has been sent to the client.
+ Override this method to perform cleanup, logging, etc. This method is primarily intended as
+ a counterpart to `prepare`. However, there are a few error cases where ``on_finish`` may be
+ called when ``prepare`` has not. (These are considered bugs and may be fixed in the future,
+ but for now you may need to check to see if the initialization work done in ``prepare`` has
+ occurred)
+
+ ``on_finish`` may not produce any output, as it is called after the response has been sent
+ to the client.
"""
pass