Control.Exception 文档说我可以执行以下操作来创建自己的异常:
data MyException = ThisException | ThatException
deriving (Show, Typeable)
instance Exception MyException
如果我将其粘贴到文件中并编译(在导入 Control.Exception 和 Data.Typeable 之后),我会得到:
exp.hs:6:20:
Can't make a derived instance of `Typeable MyException'
(You need -XDeriveDataTypeable to derive an instance for this class)
In the data type declaration for `MyException'
我必须打开这个扩展才能有用户定义的异常吗?如果不是,请有人举个例子。谢谢。
最佳答案
是的,您需要打开该扩展程序。尝试编写 Typeable
不是一个好主意手动实例,因为它与 GHC 的内部有一些联系。
关于exception - 如何在 Haskell 中定义自定义异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2270681/