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'
我必须打开这个扩展才能有用户定义的例外吗?如果不是,请提供一个例子。谢谢。
2条答案
按热度按时间llmtgqce1#
是的,你需要打开那个扩展,尝试手工编写
Typeable
示例不是一个好主意,因为它与GHC的内部有一些联系。46qrfjad2#
是的,您可以轻松地定义
Exception
并使用它。