如何在Haskell中定义自定义异常?

时间:2010-02-16 04:39:09

标签: exception haskell

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'

我必须打开此扩展程序才能拥有用户定义的例外吗?如果没有,请有人举个例子。感谢。

1 个答案:

答案 0 :(得分:5)

是的,您需要启用该扩展程序。尝试手动编写Typeable实例并不是一个好主意,因为它与GHC的内部有一些联系。