当我使用 catch 时,我收到以下警告:
Warning: In the use of `catch'
(imported from System.IO.Error):
Deprecated: "Please use the new exceptions variant, Control.Exception.catch"
我尝试使用 Control.Exception.catch 代替,但我一直在追查错误,发现太多老鼠洞。有人可以发布一个示例,其中 catch 的第二个参数捕获 getTemporaryDirectory 引发的 UnsupportedOperation 错误?
tempdir <- catch (getTemporaryDirectory)
(\e -> return ".")
另外,如何在 catch 文档中使用 catch 语法:
catch f (\e -> ... (e :: SomeException) ...)
我已经尝试了我能想到的所有语法变体,但总是出错;似乎不可能像在 lambda 中那样将类型注释(?)括在括号中。在我看来,文档极差。不幸的是,这似乎是文档作者所追求的标准。