*`app.add_route(path, func, methods=["GET"])` - Add an HTTP route. The function may be either a coroutine or a regular function, with a signature like `func(request, **kwargs) -> response`.
*`app.add_websocket_route(path, func)` - Add a websocket session route. The function must be a coroutine, with a signature like `func(session, **kwargs)`.
Submounting applications is a powerful way to include reusable ASGI applications.
*`app.mount(prefix, app)` - Include an ASGI app, mounted under the given path prefix
### Customizing exception handling
You can use either of the following to catch and handle particular types of
exceptions that occur within the application:
*`app.add_exception_handler(exc_class, handler)` - Add an error handler. The handler function may be either a coroutine or a regular function, with a signature like `func(request, exc) -> response`.
*`@app.exception_handler(exc_class)` - Add an error handler, decorator style.
*`app.debug` - Enable or disable error tracebacks in the browser.