我正在开发一个 Warp / WarpTLS 应用程序和一堆中间件(没有 yesod),所有这些都处理自己的异常。
目前我想处理在 Warp 和 WarpTLS 中引发的异常,我不清楚会发生哪些异常,以及提供的处理程序setOnException
是否足以处理所有异常(例如包括 TLS 异常)。
这是我的理解:
- 根据文档, setOnException可用于捕获 warp 内部异常(以及应用程序异常)
- Warp使用实例公开InvalidRequest 。
Exception
- 检查defaultOnExceptionResponse的 src表明这
ConnectionError
可能是从 Warp 中引发的。
我的问题:
- 如果我提供一个处理程序,
setOnException
我可以确定所有内部异常都会在那里结束吗? - 即使我使用 WarpTLS 和 1) 是否成立
runTLS
? runSettings
(Warp) 和runTLS
(WarpTLS)可能会抛出什么样的异常?