5
在基于4.4.0.0的Control.Exception的文档中,有一个如何创建异常层次结构的示例。该示例显示了如何通过根据父例外声明Exception类的实例来捕获特定异常的泛化。这很酷,但我如何让现有例外的子例外。例如,我想要在IOException异常时捕获类型约束。 Control.Exception中的示例显示:Haskell可扩展IO异常?
*Main> throw MismatchedParentheses catch (\e -> putStrLn ("Caught " ++ show (e :: SomeCompilerException)))
Caught MismatchedParentheses
*Main> throw MismatchedParentheses catch (\e -> putStrLn ("Caught " ++ show (e :: IOException)))
*** Exception: MismatchedParentheses
如何获取IOException约束来捕获我的异常?
它看起来像Haddock没有正确呈现文档。点击'Source'超链接来查看正确的定义(如果我在这里复制它,那么它可能会错误地渲染它...) –