Управление. В документации исключения говорится, что я могу сделать следующее для создания моего собственного исключения:
data MyException = ThisException | ThatException
deriving (Show, Typeable)
instance Exception MyException
Если я вставляю это в файл и компиляцию (после того, как импорт Управления. Исключение и Данные. 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.