from socketify import App, AppOptions, AppListenOptions import asyncio app = App() def xablau(res, req): raise RuntimeError("Xablau!") async def async_xablau(res, req): await asyncio.sleep(1) raise RuntimeError("Async Xablau!") # this can be async no problems def on_error(error, res, req): # here you can log properly the error and do a pretty response to your clients print("Somethind goes %s" % str(error)) # response and request can be None if the error is in an async function if res != None: # if response exists try to send something res.write_status(500) res.end("Sorry we did something wrong") app.get("/", xablau) app.get("/async", async_xablau) app.set_error_handler(on_error) app.listen( 3000, lambda config: print( "Listening on port http://localhost:%s now\n" % str(config.port) ), ) app.run()